c# - 关闭套接字,然后从 .net 中的同一端口重新打开它

标签 c# .net sockets

好吧,我想知道是否有人可以帮助解决我遇到的问题....

我想关闭一个套接字,然后从同一个端口重新运行。这就是我正在做的...

开幕式:

    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/

相关文章:

c# - C# 中的表单/类在编码时未在 Intellisense 中检测到

Android 监听来自服务器套接字的消息

c# - 如何在MvvmCross中退订弱订阅

c# - 回发后javascript更改清除

c# - 从代码隐藏打开弹出窗口

c# - 没有给定的参数对应于所需的形式参数 - .NET 错误

python套接字,当缓冲区不够大时如何接收所有消息?

Android 有没有办法只用一台设备锁定套接字?

c# - Metro 风格应用程序中缺少 .NET 功能?

c# - ThreadPool 没有立即启动新线程