服务端怎么判断客户端是否断开连接?

Aries_0219 2011-01-25 12:33:20
服务端的recv()放在线程的while(1)里,用来实时接收客户端的消息,客户端每隔一段时间发送,虽然能做到实时通信,但是一旦客户端先断开连接 或者异常退出,服务端这边就TRACE的值就会像死循环一样刷最后一个值。有什么办法能解决这个问题么? 试过用SOCKET_ERROR,但是客户端在时间间隔当中没发送信息,这边好像也做ERROR处理的,所以这个办法没用,其实只要想实现客户端断开这边退出线程就行了
...全文
655 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
renxu350 2011-01-25
  • 打赏
  • 举报
回复
WSAAsyncSelect()
FD_CLOSE 通知码
翅膀又硬了 2011-01-25
  • 打赏
  • 举报
回复
都说了心跳包是唯一的方法了。你也没必要再费劲了。肯定很多前辈都研究过
zpf82118 2011-01-25
  • 打赏
  • 举报
回复
貌似普遍还都是心跳
欣客 2011-01-25
  • 打赏
  • 举报
回复
常规做法,发送心跳检测。。。
chendong3160 2011-01-25
  • 打赏
  • 举报
回复
一般都是发送心跳包
向立天 2011-01-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lutaiyu 的回复:]
引用 4 楼 xianglitian 的回复:
引用 3 楼 shenyi0106 的回复:
心跳检测
这是唯一的办法,因为在客户端意外断线或者主动拔网线的情况下,只有这种方法可以检测出来

没错
就是心跳检测


除了心跳检测呢
[/Quote]
应该没有更好的方法
Aries_0219 2011-01-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xianglitian 的回复:]
引用 3 楼 shenyi0106 的回复:
心跳检测
这是唯一的办法,因为在客户端意外断线或者主动拔网线的情况下,只有这种方法可以检测出来

没错
就是心跳检测
[/Quote]

除了心跳检测呢
向立天 2011-01-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shenyi0106 的回复:]
心跳检测
这是唯一的办法,因为在客户端意外断线或者主动拔网线的情况下,只有这种方法可以检测出来
[/Quote]
没错
就是心跳检测
shenyi0106 2011-01-25
  • 打赏
  • 举报
回复
心跳检测
这是唯一的办法,因为在客户端意外断线或者主动拔网线的情况下,只有这种方法可以检测出来
zzz_zou 2011-01-25
  • 打赏
  • 举报
回复
发送心跳 是个很不错的办法
kingrain213 2011-01-25
  • 打赏
  • 举报
回复
发出心跳检测,用这个方法就可以的,呵呵

18,356

社区成员

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

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