- 1
- 2
- 3
- 4
- 5
处理Socket网络异常断开的方法
资料介绍
最近我负责一个IM项目的开发,服务端和客户端采用TCP协议连接。服务端采用C#开发,客户端采用Delphi开发。在服务端开发中我碰到了各种各样的网络异常断开现象。在处理这些异常的时候有了一些心得,现在写出来和大家分享一下。那网络异常断开原因主要有那些呢?归纳起来主要有以下两种:
1、客户端程序异常。
对于这种情况,我们很好处理,因为客户端程序异常退出会在服务端引发ConnectionReset的Socket 异常(就是WinSock2中的10054异常)。只要在服务端处理这个异常就可以了。
2、网络链路异常。
如:网线拔出、交换机掉电、客户端机器掉电。当出现这些情况的时候服务端不会出现任何异常。这样的话上面的代码就不能处理这种情况了。对于这种情况在MSDN里面是这样处理的,我在这里贴出MSDN的原文:
如果您需要确定连接的当前状态,请进行非阻止、零字节的Send调用。如果该调用成功返回或引发WAEWOULDBLOCK错误代码(10035),则该套接字仍然处于连接状态;否则,该套接字不再处于连接状态。
但是我在实际应用中发现,MSDN说的这种处理方法在很多时候根本无效,无法检测出网络已经异常断开了。那我们该怎么办呢?
部分文件列表
文件名 | 大小 |
处理Socket网络异常断开的方法.pdf | 136K |
最新上传
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
cai0603 打赏3.00元 3天前
用户:CJQ_ENJOY
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
cai0603 打赏3.00元 3天前
用户:dongshao
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:小猫做电路
-
21ic下载 打赏310.00元 3天前
用户:liqiang9090
-
21ic下载 打赏270.00元 3天前
用户:kk1957135547
-
21ic下载 打赏160.00元 3天前
用户:w178191520
-
21ic下载 打赏160.00元 3天前
用户:w1966891335
-
21ic下载 打赏50.00元 3天前
用户:w993263495
-
21ic下载 打赏40.00元 3天前
用户:w993263495
-
21ic下载 打赏90.00元 3天前
用户:cooldog123pp
-
21ic下载 打赏30.00元 3天前
用户:sun2152
-
21ic下载 打赏40.00元 3天前
用户:xzxbybd
-
21ic下载 打赏40.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏30.00元 3天前
用户:happypcb
-
21ic下载 打赏50.00元 3天前
用户:forgot
-
21ic下载 打赏10.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:wanglu6666
-
21ic下载 打赏5.00元 3天前
用户:人间留客
-
21ic下载 打赏5.00元 3天前
用户:jyxjiyixing
-
21ic下载 打赏5.00元 3天前
用户:akae_du
-
21ic下载 打赏5.00元 3天前
用户:ouyang_56
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
xlhtracy 打赏10.00元 3天前
-
xlhtracy 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
xlhtracy 打赏5.00元 3天前
-
czmhcy 打赏1.00元 3天前
资料:bitboy
全部评论(0)