您的位置:首页 > 其它

UDP(强行关闭了一个现有的连接远程主机)

2016-01-22 16:26 337 查看
事件回顾:客户端连接服务器 ,一段时间后会发生服务器“挂掉”的情况,为了找到原因,在调试模式下运行服务器,捕捉到了一下异常:

红色框出来的即为异常原因:强行关闭了一个现有的连接远程主机

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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: