在使用完成端口开发服务器程序时,如何判断客户端已关闭了连接

palmkey 2005-08-19 05:57:02
如题
...全文
284 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifengice0706 2005-08-21
  • 打赏
  • 举报
回复
楼上正解!
suiyun 2005-08-21
  • 打赏
  • 举报
回复
还是心跳最省事
dragonyjd 2005-08-20
  • 打赏
  • 举报
回复
分二种情况:
1.客户端关闭:GetQueuedCompletionStatus的结果收到0个数据。
2.断网,断电,客户端非法操作:采用心跳包方法检测。
gohappy_1999 2005-08-20
  • 打赏
  • 举报
回复
mark
flashboy 2005-08-20
  • 打赏
  • 举报
回复
1. GetQueuedCompletionStatus 返回TRUE, 但是TransferBytes = 0 客户端断开
2. GetQueuedCompletionStatus 返回FALSE, 且TransferBytes = 0 服务器主动断开
3. Keep_Alive. 心跳包发现断开

通常通过以上3种情况发现CLIENT吊线.
Practise_Think 2005-08-19
  • 打赏
  • 举报
回复
返回的接收数据长度为0时,则说明对方主动断开了!
yzkzero 2005-08-19
  • 打赏
  • 举报
回复
这个方法可以检测突然拔掉网线的情况吗?
Quinn 2005-08-19
  • 打赏
  • 举报
回复
用GetQueuedCompletionStatus函数可以知道客户端是否被关闭,若客户端被关闭会返回错误码
yzkzero 2005-08-19
  • 打赏
  • 举报
回复
同上
i_noname 2005-08-19
  • 打赏
  • 举报
回复
还是用心跳包最简单

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧