UDP(强行关闭了一个现有的连接远程主机)
2016-01-22 16:26
337 查看
事件回顾:客户端连接服务器 ,一段时间后会发生服务器“挂掉”的情况,为了找到原因,在调试模式下运行服务器,捕捉到了一下异常:
红色框出来的即为异常原因:强行关闭了一个现有的连接远程主机
View Code
注:上述方案是针对UDP协议,而我在程序中使用的是TCP协议,所以最终的解决方案是:
允许套接字绑定在已使用的地址中。测试服务器不会当掉!
End
红色框出来的即为异常原因:强行关闭了一个现有的连接远程主机
Dim IOC_IN As Integer = &H80000000 Dim IOC_VENDOR As Integer = &H18000000 Dim SIO_UDP_CONNRESET As UInteger = IOC_IN Or IOC_VENDOR Or 12 handler.IOControl(Convert.ToInt32(SIO_UDP_CONNRESET), New Byte() {False}, Nothing)
View Code
注:上述方案是针对UDP协议,而我在程序中使用的是TCP协议,所以最终的解决方案是:
listener = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) listener.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True)
允许套接字绑定在已使用的地址中。测试服务器不会当掉!
End