内容如题!关键是如何监听返回值?最好有对应的例子.万分感谢.

解决方案 »

  1.   

    用api好些吧
    另外,什么叫监听返回值啊
      

  2.   

    我看过一段代码,不过不太明白.在客户端使用多线程技术在阻塞模式下,为了尽可能的减少阻塞方式的副作用,可以把所有的涉及到读写操作放在一个单独的线程种。为此,需要创建一个新的线程对象,然后重载它的Execute方法,在线程代码中,我们通过TWinSockStream对象来进行读写操作。Procedure TClientThread.Execute;Var sStream: TWinSockStream;
    sBuffer: string;Begin//建一个TWinSocketStream对象实例,设置连接超时SSteam: = TWinSockStream.Create (ClientSocket.Socket, 60000);Try //获取和操作命令,直到连接断开或者线程终止While (not Terminate) and (ClientSocket.Active) dobegintryGetNextRequest (sBuffer);//将请求写回到ServersStream.Write (sBuffer, Length (sBuffer) + 1);…Exceptif not(Except Object is EAbort) then//处理一些自定义的异常情况Synchronize(HandleThreadException);end;end;finallysStream.Free;end;End;这个线程的对象是如何生成的,在哪个地方设置远程IP和端口号,还有到底如何接收服务端的返回值?
      

  3.   

    我顶!
    我的代码
    procedure SocketThread.Execute;
    var
      tClient : TClientSocket;
    begin
      tClient := TClientSocket.Create(nil);
      try
        tClient.ClientType := ctBlocking;
        tClient.Port := strtoint(form1.Edit2.text);
        tClient.Address := form1.Edit1.Text;
        tClient.Active := true;
        tClient.Socket.SendText(form1.Edit3.Text+ ';' +form1.Edit4.Text + ';' + form1.Edit5.Text);
      finally
        tClient.Free;
      end;
    end;
    客户端可以发送,但是不知道如何接收服务器的返回值.最好给个例子.
      

  4.   

    最好用WinSock API来做,调用select函数实现非阻塞方式。
      

  5.   

    你用的什么IO模式
    非阻塞响应read,write事件就可以
    阻塞的话,需要用TWinSockStream