支持聊天就可以了,谁能给我弄一个,谢谢!

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus, StdCtrls, ScktComp, ExtCtrls, ComCtrls;type
      TForm1 = class(TForm)
        ClientSocket1: TClientSocket;
        ServerSocket1: TServerSocket;
        MainMenu1: TMainMenu;
        File1: TMenuItem;
        listen1: TMenuItem;
        connect1: TMenuItem;
        StatusBar1: TStatusBar;
        Memo2: TMemo;
        Memo1: TMemo;
        Label1: TLabel;
        Label2: TLabel;
        Button1: TButton;
        Button2: TButton;
        NonConnect1: TMenuItem;
        procedure FormCreate(Sender: TObject);
        procedure listen1Click(Sender: TObject);
        procedure connect1Click(Sender: TObject);
        procedure ClientSocket1Connect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure ServerSocket1Accept(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
        procedure ServerSocket1ClientRead(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
          ErrorEvent: TErrorEvent; var ErrorCode: Integer);
        procedure Memo1KeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure Button1Click(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure ServerSocket1ClientError(Sender: TObject;
          Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
          var ErrorCode: Integer);
        procedure ClientSocket1Disconnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure ServerSocket1ClientDisconnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure Button2Click(Sender: TObject);
        procedure NonConnect1Click(Sender: TObject);  private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      server:string;
      isserver:boolean;
      Client_Flag : Boolean = False;
      Server_Flag : Boolean = False;
    implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
        listen1click(nil);
    end;procedure TForm1.listen1Click(Sender: TObject);
    begin
      memo1.Lines.Clear;
      memo2.Lines.Clear;
      listen1.Checked:=not listen1.Checked;
      if listen1.Checked then
      begin
        clientsocket1.Active:=false;
        serversocket1.Active:=true;
        statusbar1.Panels[0].Text:='listening......';
      end
      else
      begin
        if serversocket1.Active then
          serversocket1.Active:=false;
          clientsocket1.Active:=true;
          statusbar1.Panels[0].Text:='';
      end;
    end;procedure TForm1.connect1Click(Sender: TObject);
    begin
      if clientsocket1.Active then
        clientsocket1.Active:=false;  server := '192.168.1.';
      if inputquery('computer to connect to ','address name:',server) then
        if length(server)>0 then
          with clientsocket1 do
          begin
            Address:=server;
            try
              active:=true;
            except
            end;
          end;
    end;procedure TForm1.ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
         statusbar1.Panels[0].Text:='connected to : '+socket.RemoteHost;
         Client_Flag := true;
    end;procedure TForm1.ServerSocket1Accept(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
        isserver:=true;
        statusbar1.Panels[0].Text:='connected to : '+socket.RemoteAddress;
        Server_Flag := true;
    end;procedure TForm1.ClientSocket1Read(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
        memo2.Lines.Add(socket.receivetext)
    end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
        memo2.Lines.Add(socket.ReceiveText);
    end;procedure TForm1.ClientSocket1Error(Sender: TObject;
      Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
      var ErrorCode: Integer);
    begin
      memo2.Lines.Add('error connecting  to: '+server);
      errorcode:=0;
    end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=VK_return then
      begin
        if Server_Flag then
          serversocket1.socket.connections[0].sendtext(memo1.lines[memo1.lines.count-1])
        else
          ClientSocket1.Socket.SendText(memo1.lines[memo1.lines.count-1]);
        end;
      end;procedure TForm1.Button1Click(Sender: TObject);
    begin
        Form1.connect1Click(Sender);
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        ClientSocket1.Active := False;
        ServerSocket1.Active := False;
    end;procedure TForm1.ServerSocket1ClientError(Sender: TObject;
      Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
      var ErrorCode: Integer);
    begin
        ErrorCode := 0;
    end;procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
        Form1.StatusBar1.Panels[0].Text := '断开';
    end;procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
        Form1.StatusBar1.Panels[0].Text := '断开';
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
        if Client_Flag then
           ClientSocket1.Active := False;
        if Server_Flag then
           serversocket1.socket.connections[0].Close;
    end;procedure TForm1.NonConnect1Click(Sender: TObject);
    begin
        Form1.Button2Click(Sender);
    end;end.
      

  2.   

    呵呵,delphi自带就有个chat,
    不过我还有个netchat的源程序,哪儿下载的忘了,你要的话留个email
      

  3.   

    看看这个是不是你需要的
    http://www.2ccc.com/softview.php?type=f&softid=204&PHPSESSID=497502c1bee95855ea0b9a74e10f3548
      

  4.   

    这里找不到你满意的答案吗?来这里试试!
    这里有问必答
    http://systemer.51.net/cgi-bin/leoboard.cgi
    希望你能在这里找到你满意的答案!