处理Socket网络异常断开的方法
最近我负责一个im项目的开发,服务端和客户端采用tcp协议连接。服务端采用c#开发,客户端采用delphi开发。在服务端开发中我碰到了各种各样的网络异常断开现象。在处理这些异常的时候有了一些心得,现在写出来和大家分享一下。
那网络异常断开原因主要有那些呢?归纳起来主要有以下两种: 1、客户端程序异常。
对于这种情况,我们很好处理,因为客户端程序异常退出会在服务端引发connectionreset的socket异常(就是winsock2中的100异常)。只要在服务端处理这个异常就可以了。
2、网络链路异常。
如:网线拔出、交换机掉电、客户端机器掉电。当出现这些情况的时候服务端不会出现任何异常。这样的话上面的代码就不能处理这种情况了。对于这种情况在msdn里面是这样处理的,我在这里贴出msdn的原文:如果您需要确定连接的当前状态,请进行非阻止、零字节的send调用。如果该调用成功
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务