Я использую сокет со следующей конфигурацией для получения многоадресных пакетов, и код работает правильно.
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.Я попытался закрыть сокет, сбросить его, но перезапуск - единственное решение, которое я нашел.Приложение будет использоваться в среде, где пользователь обычно отключает кабель Ethernet и подключает другой.
Первоначально я использовал UdpClient, но та же проблема сохраняется и на этом.Операционная система - Windows 7, и я использую .NET 4.5.2.