string sMulticastAddress = "239.255.255.250";
UdpClient uc = new UdpClient();
uc.JoinMulticastGroup(IPAddress.Parse(sMulticastAddress));
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(sMulticastAddress), 3702);
byte[] abFoo = Encoding.ASCII.GetBytes("This is a test");
for (int i= 0; i < 100; i++)
{
uc.Send(abFoo, abFoo.Length, iep);
}
Вышеприведенный код выполняется, но, похоже, он не отправляет ничего, основываясь на трассировке Wireshark. Однако, если я изменю sMulticastAddress на любой другой адрес, такой как 239.255.255.251, 239.255.255.248, 239.255.255.249, он работает отлично. Wireshark перехватывает каждый отправленный им пакет («Это тест»).
Я не знаю, что делает 239.255.255.250 таким особенным. Я тестирую его в Windows 10. Я попытался отключить брандмауэр. Это приложение UWP.
У меня есть другое приложение UWP, которое использует DatagramSocket для многоадресной рассылки по тому же адресу на том же компьютере, и это работает. Это означает, что проблема, вероятно, связана с UdpClient.
Мне интересно, если кто-нибудь может предложить подсказку о возможных причинах.