问一个简单问题:同步socket中,然后检测客户端已经断开?? 如题!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 网络连接断开可以分为两种:1.正常断开.这类问题可以处理.2.非正常断开.a. 客户端主机突然停电、被损坏、网线被剪断,这是一类;b. 客户端进程被结束任务程序强行中止, 此时物理连接是完好的.对于非正常断开, TCP/IP 协议不能检测, 这是 TCP/IP 的设计问题, 只能通过发送数据包来检测.如 HeartBeat 包. 只要包不能正常发送出去, 不管是基于上述何种原因, 都可以认为网络已经断开.在你的程序中加入两对 Socket ,其中一对用来发送 HeartBeat 包,每隔单位时间发送一次.出错则认为网络已经断开.对于非正常断开, 两对 SOCKET 必然同时断开,这样就可以处理非正常断开了 To:mingbao(★情已逝★) 我现在是按照你说的方法做的,但是有一个术语不太懂,什么叫 HeartBeat 包啊。 94定时发送的包。而且有回应。让client和service都能知道对方存在。类似心跳平率 随便发送个数据包不就得了?只是检测嘛,你可以 cstring str("还是连接的吗?"); send(s,str..) activex 控件对鼠标按键的响应,传到子控件 (CTreeCtrl) 问题 急!一个问题! 关于视频聊天软件的话题 关于picture!! 谁给介绍一下MSXML的功能和用法 CScrollView怎么自画背景的问题。。。 输入法和IE的表单 如何修改区域和语言选项中的格式? 为什么专家分会减少? 马上给你加分:救火:哪里有PWS下载,马上急用 得了第二届全国高校BBS大赛第三名,高兴,散分... 支持多台客户端的聊天程序怎么做?
这类问题可以处理.2.非正常断开.
a. 客户端主机突然停电、被损坏、网线被剪断,这是一类;
b. 客户端进程被结束任务程序强行中止, 此时物理连接是完好的.对于非正常断开, TCP/IP 协议不能检测, 这是 TCP/IP 的设计问题, 只能通过发送数据包来检测.
如 HeartBeat 包. 只要包不能正常发送出去, 不管是基于上述何种原因, 都可以认为网络已经断开.在你的程序中加入两对 Socket ,其中一对用来发送 HeartBeat 包,每隔单位时间发送一次.
出错则认为网络已经断开.对于非正常断开, 两对 SOCKET 必然同时断开,这样就可以处理非正常断开了
我现在是按照你说的方法做的,但是有一个术语不太懂,什么叫 HeartBeat 包啊。
只是检测嘛,你可以 cstring str("还是连接的吗?"); send(s,str..)