然后就会在服务器端接收到无数个空包?是什么原因
6 个解决方案
#1
关注中——————
我也是碰到这种情况,没有解决——————
我也是碰到这种情况,没有解决——————
#2
up
#3
正常的,当SOCKET一端逻辑终止时(不是物理终止,比如拨网线),另一端就会认为收到了数据,但这个数据包的大小是0,你可以用这个来判断SOCKET是否出现故障了,这时你必须对此进行处理,比较关闭这个连接,否则每次检查时都会认为收到一个空包。
#4
情况确实如 Lastcsdner(外行) 所说的一样,那还有什么情况会导致此情况的发生,用什么方法去处理这类情况是最好的?
#5
出现原因:一、用户正常退出,这时你还循环调用了Receive方法时会出现。并会陷入死循环。
二、用户非正常退出,包括拔网线,死机,服务器会捕捉到一个异常
处理方法:一、你只要在循环里对数据进行判断一下,如果数据为0就中止循环,并关闭此Socket连接即可
二、在服务器端建一个异常处理程序即可
二、用户非正常退出,包括拔网线,死机,服务器会捕捉到一个异常
处理方法:一、你只要在循环里对数据进行判断一下,如果数据为0就中止循环,并关闭此Socket连接即可
二、在服务器端建一个异常处理程序即可
#6
up
#1
关注中——————
我也是碰到这种情况,没有解决——————
我也是碰到这种情况,没有解决——————
#2
up
#3
正常的,当SOCKET一端逻辑终止时(不是物理终止,比如拨网线),另一端就会认为收到了数据,但这个数据包的大小是0,你可以用这个来判断SOCKET是否出现故障了,这时你必须对此进行处理,比较关闭这个连接,否则每次检查时都会认为收到一个空包。
#4
情况确实如 Lastcsdner(外行) 所说的一样,那还有什么情况会导致此情况的发生,用什么方法去处理这类情况是最好的?
#5
出现原因:一、用户正常退出,这时你还循环调用了Receive方法时会出现。并会陷入死循环。
二、用户非正常退出,包括拔网线,死机,服务器会捕捉到一个异常
处理方法:一、你只要在循环里对数据进行判断一下,如果数据为0就中止循环,并关闭此Socket连接即可
二、在服务器端建一个异常处理程序即可
二、用户非正常退出,包括拔网线,死机,服务器会捕捉到一个异常
处理方法:一、你只要在循环里对数据进行判断一下,如果数据为0就中止循环,并关闭此Socket连接即可
二、在服务器端建一个异常处理程序即可
#6
up