有用过ICS的控件高手吗?小弟最近尝试用ICS编写一个客户端通信程序,用到的控件是ICS中WSocket.一个简单的小问题难住了我,就是不知道OnDataAvailable事件如何响应.我以为只要连接上服务器后就会自动响应,但结果不是.要满足什么条件才响应呢?请高手指教.
 

解决方案 »

  1.   

    ICS当中,当一个客户端连接上来之后,服务端Accept完成,还需要对该连接上下文关联相应的接收(OnDataAvailable)等过程。参考一下Demo就知道了。
      

  2.   

    对于ICS的这种机制,实际上可以让一个WSocketServer监听多个地址和端口,然后根据不同来源,创建不同的通讯子类来完成工作。相比其它控件就灵活很多。
      

  3.   

    unsigned大哥,我就是没有demo才要提问啊!我现在客户端连上服务器后,客户端的OnDataAvailable事件没响应,我不知道如何响应,你知道的请告诉小弟.
      

  4.   

    http://www.overbyte.be
      

  5.   

    看不明白啊,帮助文档说:
    OnDataAvailable:   Is called when data is available from winsock. You have to receive all data in here. If you don't receive all data then it is called back immediately after it ends. This event is also called immediately after a connection. If your application has nothing to receive, then you must receive here and trow away, or assign nothing (nil) to this event.里面不是说一连接上就响应了吗,怎么就没反应呢?
      

  6.   

    不要光只瞄着OnDataAvailable,这个事件也并不是一连接上就响应,而是有数据收到才响应.连接上应该是OnSessionConnected(客户端)或者OnClientConnect(服务器端)在服务器端需要进行相应的设置:
    procedure TForm6.WSocketServer1ClientConnect(Sender: TObject;
      Client: TWSocketClient; Error: Word);
    begin
      Client.OnDataAvailable := OnDataAvailable;//事件处理过程  ...
    end;