Posted on 2009-06-15 18:42
Prayer 阅读(1021)
评论(0) 编辑 收藏 引用 所属分类:
SOCKET
网络连接断开可以分为两种:
1.正常断开.
这类问题可以处理.
2.非正常断开.
a. 客户端主机突然停电、被损坏、网线被剪断,这是一类;
b. 客户端进程被结束任务程序强行中止, 此时物理连接是完好的.
对于非正常断开, TCP/IP 协议不能检测, 这是 TCP/IP 的设计问题, 只能通过发送数据包来检测.
如 HeartBeat 包. 只要包不能正常发送出去, 不管是基于上述何种原因, 都可以认为网络已经断开.
在你的程序中加入两对 Socket ,其中一对用来发送 HeartBeat 包.
出错则认为网络已经断开.
因为对于非正常断开, 两对 SOCKET 必然同时断开.