为什么我每次把客户端的socket连接关闭的时候,服务器端就会收到大量的空包? 客户端:Socketabc.Close();(两端都是采用异步)然后就会在服务器端接收到无数个空包?是什么原因 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正常的,当SOCKET一端逻辑终止时(不是物理终止,比如拨网线),另一端就会认为收到了数据,但这个数据包的大小是0,你可以用这个来判断SOCKET是否出现故障了,这时你必须对此进行处理,比较关闭这个连接,否则每次检查时都会认为收到一个空包。 情况确实如 Lastcsdner(外行) 所说的一样,那还有什么情况会导致此情况的发生,用什么方法去处理这类情况是最好的? 出现原因:一、用户正常退出,这时你还循环调用了Receive方法时会出现。并会陷入死循环。 二、用户非正常退出,包括拔网线,死机,服务器会捕捉到一个异常处理方法:一、你只要在循环里对数据进行判断一下,如果数据为0就中止循环,并关闭此Socket连接即可二、在服务器端建一个异常处理程序即可 前几天在国外官网上买的FlexPaper AdaptiveUI源代码不知道怎么用,求帮助! c#如何调用c++编写好的dll文件 请关注ASP.NET与C#打包问题 400分求一个算法 由一系列点连成线,求绕这条线的给定半径的管道! Oracle存储过程中的输出参数,在C#中输出怎么是乱码? 到底怎么判断是不是业务逻辑? 关于Activator类 imagelist控件报错 C#关于文件夹共享的权限设置 VS.Net中的编辑器。 如何将一个媒体播放器和文本阅读器(可以阅读word,txt等)捆绑到一起 请使用过WEB BROWSER的高手相助,没招了!!SOS.SOS
二、用户非正常退出,包括拔网线,死机,服务器会捕捉到一个异常
处理方法:一、你只要在循环里对数据进行判断一下,如果数据为0就中止循环,并关闭此Socket连接即可
二、在服务器端建一个异常处理程序即可