怎么才能让idtcpclient接收到idtcpserver发来的信息。
建立线程的方法,具体代码怎么写?谢谢,盼复

解决方案 »

  1.   

    正在学习INDY
    个人认为
    CLIENT接收SERVER信息的情况
    一、CLIENT发信息给SERVER,SERVER返回信息给你
    二、SERVER 发信息给CLIENT
         1、CLIENT连接上SERVER时,SERVER发送的提示信息
         2、因业务需要SERVER主动发信息给CLIENT
      

  2.   

    一、
    procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
    begin
    AThread.Connection.WriteLn('Welcome to My demo');
    end;
    procedure TForm1.IdTCPClient1Connected(Sender: TObject);
    var str:string;
    begin
        str:=idtcpclient1.ReadLn();
        memo1.Lines.Add(str);
    end;
    二、
    1、
    procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
    var cmd:string;
    begin
        cmd:=athread.Connection.ReadLn();
        athread.Connection.WriteLn(cmd);
    end;
    //这是客户端发送信息的按钮事件
    procedure TForm1.Button5Click(Sender: TObject);
    var
      s:string;
      temp:string;
    begin
      s:='服务器,你好';
      IdTCPClient1.WriteLn(s);
      temp:=IdTCPClient1.Readln;
      showmessage('服务器说:'+temp);
    end;2、
    //服务器发送按钮,t 可以在IDTCPSERVER1EXCEUTE中赋值
    procedure TForm1.Button6Click(Sender: TObject);
    var i:integer;
    begin    for i:=0 to idtcpserver1.Threads.LockList.Count-1 do
        begin
             if TIdPeerThread(idtcpserver1.Threads.LockList.Items[i]).Connection.LocalName:=t  then
             TIdPeerThread(idtcpserver1.Threads.LockList.Items[i]).Connection.WriteLn('server call you ');
        end;
    end;
    //客户端接收按钮,可以转换为单独线程来处理
    procedure TForm1.Button7Click(Sender: TObject);
    var a:string;
    begin
    a:=idtcpclient1.ReadLn;
    memo1.Lines.Add(a);
    end;