CSocket如何判断连接断开

虎滴小猪猪 2010-06-24 10:27:42
如果服务端程序正常关闭,能通过CSokcet.OnClose()判断连接已经断开。
但是如果服务端程序非正常关闭,怎样来判断通信连接已经断开?
急啊?
...全文
544 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolffan3150 2010-06-24
  • 打赏
  • 举报
回复
自己发心跳包来判断
zhb1190 2010-06-24
  • 打赏
  • 举报
回复
发心跳包,自己定义一个次数,例如:3次没有收到心跳回复就重新连接
来灵 2010-06-24
  • 打赏
  • 举报
回复
用SetTimeEvent定时器函数,每隔15秒向服务器发送自定义心跳包,服务端收到心跳包后,向客户端发送回应包。如此反复。若客户端3次以上收不到回应包,则可判断连接已经断开。
虎滴小猪猪 2010-06-24
  • 打赏
  • 举报
回复
我想在客户端判断连接是否断开,如果断开了,再重连。
Eleven 2010-06-24
  • 打赏
  • 举报
回复
发送心跳包,自己定义协议。如果在超时的时间间隔中没有收到ACK,就认为客户端离开,就closesocket释放socket
bragi523 2010-06-24
  • 打赏
  • 举报
回复
即使响应也要很久之后,所以你要自己发心跳来判断
虎滴小猪猪 2010-06-24
  • 打赏
  • 举报
回复
能具体点吗?如果服务端异常退出,不响应CSocket.OnClose()吗?
shenyi0106 2010-06-24
  • 打赏
  • 举报
回复
客户端发送心跳
lijianli9 2010-06-24
  • 打赏
  • 举报
回复
开一个定时器函数,
然后在里面
send(sockClient,"心跳测试",strlen("心跳测试")+1,0);
tianhaixin 2010-06-24
  • 打赏
  • 举报
回复
路过 学习……
shenyi0106 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ljfwyh 的回复:]
咋发心跳包,能给个例子吗?
[/Quote]
创建一个线程,定时给服务器发送一个短包,就可以了
虎滴小猪猪 2010-06-24
  • 打赏
  • 举报
回复
咋发心跳包,能给个例子吗?

18,356

社区成员

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

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