Невозможно использовать UdpClient для многоадресной рассылки на «239.255.255.250» - PullRequest
0 голосов
/ 14 мая 2019
    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. Мне интересно, если кто-нибудь может предложить подсказку о возможных причинах.

...