首页 文章

禁用/启用网络连接后无法接收多播套接字

提问于
浏览
0

我正在使用Socket进行以下配置来接收组播数据包并且代码正常运行 .

socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
socket.Bind(bindPoint);
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(multicastAddress, IPAddress.Any));
socket.ReceiveTimeout = 1000;

但是从控制面板禁用网络连接并启用后,套接字无法接收组播数据 . 我可以看到Wireshark的数据包 . 我尝试关闭套接字,重置套接字但重启是我提出的唯一解决方案 . 该应用程序将用于用户通常移除以太网电缆并插入另一根电缆的环境中 .

最初我使用的是UdpClient,但同样的问题也存在 . 操作系统是Windows 7,我使用的是.NET 4.5.2 .

1 回答

  • 0

    禁用网络连接后,如果您有一个连接(虚拟主机等),Windows会自动使用另一个连接 . 启用先前的连接后,应用程序不使用正确的连接,因为没有进行任何接口选择 . 禁用其他连接或指定接口可以解决问题 .

相关问题