好吧,我想知道是否有人可以帮助解决我遇到的问题....
我想关闭一个套接字,然后从同一个端口重新运行。这就是我正在做的...
开幕式:
UdpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
UdpServerIpEndPoint = new IPEndPoint(IPAddress.Any, 9050);
UdpEndPoint = (EndPoint)UdpServerIpEndPoint;
UdpServer.Bind(UdpServerIpEndPoint);
结束语:
UdpServer.Shutdown(SocketShutdown.Both);
UdpServer.Disconnect(true);
UdpServer.Close();
关闭后。然后我尝试使用与上面相同的代码重新连接它,但出现错误:
Additional information: Only one usage of each socket address (protocol/network address/port) is normally permitted
我在关闭期间检查了异常,但我没有得到任何异常,我猜它们已正确关闭,所以实际上,是什么导致了这个问题?请帮忙!
最佳答案
我得到了答案.... 我需要在声明套接字后使用它...
socket.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReuseAddress, true);
关于c# - 关闭套接字,然后从 .net 中的同一端口重新打开它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942810/