不行啊,我想在关闭服务器的时候给对方发一条消息,告诉客户,服务器已经关闭,然后让客户也关闭连接(否则好象客户机一直不知道已经断开了,还显示正常连接,不知道为什么?)
但是我这么做了,在关闭前发送消息给客户,但客户却无法收到信息?为什么?
Private Sub MenuDisconnect_Click()    
    WinSockCommunication.SendData MessageOffLine  '发送离线消息
'这里发送了消息后,客户机却无法收到这条信息,为什么?
    WinSockCommunication.Close
End Sub

解决方案 »

  1.   

    服务器端发送一个确认字串===========================
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    winsock1.sendData"DataArrived"
    End sub 客户端判断是否未确认字串=========================================
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    winsock2.getdata data
     if data="DataArrived" then
     其他操作
     endif
    End Sub
      

  2.   

    TCP/IP连接一端请求断开,则两端都应该断开,不需要两端都执行.CLOSE
      

  3.   

    楼上的兄弟,你的意思是说,如果一方 执行Winsock.Close,那么另一方也会触发Winsock_Close事件?好象我调试的时候,发现如果一方执行了Winsock.Close,另一方的
    Winsock_Close事件并没有被触发,请教。
      

  4.   

    不可能如果你是连接成功的话,一方断开后,另一方会触发Winsock_Close事件,你在客户端的Winsock_Close事件那里设置断点看
      

  5.   

    同意设断点看~如果是成功断开是会触发另一端的_close事件的
      

  6.   

    client断开,会触发server的close事件
      

  7.   

    winsock 的 Close 事件确实是不保险的,如果是在正常情况下,Close 事件是会发生的,可是如果是不正常的情况下,Close 事件有时就是不发生的,所以,如果要正确的知道服务器或客户端是否是正常关闭,应该用定时查询的方法才是最有效的