用 winsocket api 函数来做网络程序,服务端怎么判断客户端已经断开连接? ( 积分: 100 )

  • 主题发起人 主题发起人 searoom
  • 开始时间 开始时间
S

searoom

Unregistered / Unconfirmed
GUEST, unregistred user!
我用 winsocket api 来做,服务器端开线程不同的 accept,可以及时得到客户端的连接,但不知道怎么才能得到客户端已经断开连接了
 
客户端要一直发心跳包到服务器 当服务器在一定的时间内感应不到心跳包的时候就说明客户端断开了.....
 
网络程序用Indy控件是最方便的
---------------------------------------------------------------------------------------http://www.waibaoinfo.com 外包信息网 - 专业的外包项目发布和承接平台
 
假设Accept成功后得到的套接字是sTCPConn,对sTCPConn的Send和Receive操作:
1:返回0,此时对方已正常断开连接
2:返回SOCKET_ERROR,此时调用WSAGetLastError返回WSAECONNRESET或WSAECONNABORT。WSAECONNRESET说明对方已重设连接,此时你不能再对此套接字操作了(除了,关闭它)。WSAECONNABORT说明连接由于诸如网络原因或程序意外关闭造成了异常中断,此时你也必须关闭自己的套接字。
严重鄙视不看msdn
 
接受“地质灾害”的鄙视!没什么看 msdn 的习惯。

对于发心跳包的方法,我总觉得不太好
 
后退
顶部