哪位可以用通俗的语言告诉我Winsock控件的close,connect,connectionrequest,dataarrival,sendcomplete,sendprogress这些事件在什么时候触发?
客户端在发送连接请求时如何把自己的一些信息传给服务器以让服务器做出判断是否答应连接?
服务器如何断开当前的客户端连接,如果希望客户端继续发送连接请求,应该如何实现?

解决方案 »

  1.   


    Close 事件
          当远程计算机关闭连接时出现。应用程序应正确使用 Close 方法关闭 TCP 连接。
    Connect 事件 (Winsock 控件)
          当一个 Connect 操作完成时发生。
    ConnectionRequest 事件
          当远程计算机请求连接时出现。 仅适用于 TCP 服务器应用程序。在请求一个新连接时激活该事件。激活事件之后,RemoteHostIP 和 RemotePort 属性存储有关客户的信息。 
    DataArrival 事件
          当新数据到达时出现。
    SendComplete 事件
          在完成一个发送操作时出现。SendProgress 事件
          在发送数据期间出现。
      

  2.   

    请求端发出请求,服务端accept以后,请求端发生Connect事件还是服务端发生?
    客户端如何知道服务端已断开当前连接?
      

  3.   

    1,请求段发生 Connect事件
    2。如果服务器。close那么触发客户端的close 事件,反之则亦然。像判断是否已断开连接,只有错误和。state<>7判断
      

  4.   

    比如说我只想接受客户端a的连接,但是我从IP无法判断出是不是a,那么我只能一个一个的accept,看看不是再断开,直到找到为止?
      

  5.   

    对呀,只能握手会话连接以后才能通讯的,其实但并不是你说的只能一个一个的accept,因为如果不是授权的电脑,一般情况下你也不会去做这么多的连接尝试吧,接受连接的是被动的,所以你所做的是在连接后判断是否a,不是的话再断开。