将网线断开后recv始终不返回!用netstat 命令看网络状态,显示这个端口还是连接的!
奇怪!
请高手指点!
奇怪!
请高手指点!
解决方案 »
- 更改视图背景的问题
- 我想让通过NetAPI来获取网卡信息和连接名称如"本地连接"或是网卡描述等对应起来(100分)
- 救命呀,我的IE打不开。各位大哥大姐帮帮我!!!!!!!!!!!!!11
- 如何将内存里的数据CObList通过网络CSocket发送??
- 非常感谢nbgyf,在TWAIN方面的指导!
- 这算是 CSDN 的一个“法律漏洞”吗?
- 请yousen大侠来领分!
- 大家帮忙看一下这个错误!
- 分别用计时器的和工作线程检测反复检测10个变量的值,哪个效果好?(占用CPU周期少)
- 我在网上下载的avi文件用media player打开时提示:无法下载合适的解压缩程序,这是怎么回事?
- 向高手求救:可以使用libmySQL.dll来建立一个MYSQL数据库吗?(
- 各位大侠能不能讲讲UDP校验和原理并给一份计算校验和的源程序
网落断开,TCP/IP协议不是知道吗?为什么将网线断开后recv始终不返回呢?
呵呵,不明白你的意思,能说详细一点吗?
当客户端断开,经历FIN_WAIT_1->(大约两分钟)然后自己断开连接;
当服务器断开,将关闭所有的连接上的连接,但listen()继续;
我采取超时来处理,即客户端定时向服务器发送查询消息,如果双放
有一方OnTimeOut()说明网线端开!
这类问题可以处理.2.非正常断开.
a. 客户端主机突然停电、被损坏、网线被剪断,这是一类;
b. 客户端进程被结束任务程序强行中止, 此时物理连接是完好的.对于非正常断开, TCP/IP 协议不能检测, 这是 TCP/IP 的设计问题, 只能通过发送数据包来检测.
如 HeartBeat 包. 只要包不能正常发送出去, 不管是基于上述何种原因, 都可以认为网络已经断开.在你的程序中加入两对 Socket ,其中一对用来发送 HeartBeat 包,每隔单位时间发送一次.
出错则认为网络已经断开.对于非正常断开, 两对 SOCKET 必然同时断开,这样就可以处理非正常断开了