udp服务器中,关于socket.EndReceiveFrom错误的疑问,什么情况下这个函数会产生错误
udp服务器中,关于socket.EndReceiveFrom异常的疑问,什么情况下这个函数会产生异常?
udp服务器中,关于socket.EndReceiveFrom异常的疑问,什么情况下这个函数会产生异常?
我用C#写了个udp服务器,在linux下写了个udp客户端,发现有两种情况下socket.EndReceiveFrom函数会产生异常。
1> 当linxu的客户端关闭socket时,socket.EndReceiveFrom会产生异常,异常信息为:”在 System.Net.Sockets.SocketException 中第一次偶然出现的“System.dll”类型的异常
System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。“
2> Linux下我将网络连接用有线网的方式换成串口转wifi的方式时,当服务器socket收到信息,会产生一个异常,异常信息同上面一样。
想问各位大大,socket.EndReceiveFrom的异常通常是由什么引起的?怎么样解决。
------解决思路----------------------
不懂,帮你顶顶
------解决思路----------------------
UDP是有这个异常,我也遇到过,有这个异常是很正常的,导致这个异常的原因可能是发送方的代码没有写好。
楼主可以在socket.EndReceiveFrom上加一个try catch块,在finally中写上socket.BeginReceiveFrom,这样即使发生异常了,UDP接收还是照样可以继续的
------解决思路----------------------
UDP是有这个异常的,我也遇到过,导致这个异常可能是发送方的代码没写好。
楼主可以在socket.EndReceiveFrom上加一个try catch块,在finally中写上socket.BeginReceiveFrom,这样即使发生异常了,UDP还是照常接收的。
------解决思路----------------------
远程主机强迫关闭了一个现有的连接。
既然对方关闭了Socket,那么这个异常是正常的。
------解决思路----------------------
发送到关闭或者断开连接,会产生这个异常。
处理办法:
判断连接是否存在,如果不存在不执行接收。
或者干脆做try catch处理
udp服务器中,关于socket.EndReceiveFrom异常的疑问,什么情况下这个函数会产生异常?
我用C#写了个udp服务器,在linux下写了个udp客户端,发现有两种情况下socket.EndReceiveFrom函数会产生异常。
1> 当linxu的客户端关闭socket时,socket.EndReceiveFrom会产生异常,异常信息为:”在 System.Net.Sockets.SocketException 中第一次偶然出现的“System.dll”类型的异常
System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。“
2> Linux下我将网络连接用有线网的方式换成串口转wifi的方式时,当服务器socket收到信息,会产生一个异常,异常信息同上面一样。
想问各位大大,socket.EndReceiveFrom的异常通常是由什么引起的?怎么样解决。
------解决思路----------------------
不懂,帮你顶顶
------解决思路----------------------
UDP是有这个异常,我也遇到过,有这个异常是很正常的,导致这个异常的原因可能是发送方的代码没有写好。
楼主可以在socket.EndReceiveFrom上加一个try catch块,在finally中写上socket.BeginReceiveFrom,这样即使发生异常了,UDP接收还是照样可以继续的
------解决思路----------------------
UDP是有这个异常的,我也遇到过,导致这个异常可能是发送方的代码没写好。
楼主可以在socket.EndReceiveFrom上加一个try catch块,在finally中写上socket.BeginReceiveFrom,这样即使发生异常了,UDP还是照常接收的。
------解决思路----------------------
远程主机强迫关闭了一个现有的连接。
既然对方关闭了Socket,那么这个异常是正常的。
------解决思路----------------------
发送到关闭或者断开连接,会产生这个异常。
处理办法:
判断连接是否存在,如果不存在不执行接收。
或者干脆做try catch处理