Я разработал приложение C#, которому необходимо прослушивать многоадресные сообщения UDP. Многоадресная рассылка UDP отправляется с виртуальной машины (ВМ) Linux со следующими сетевыми данными: inet: 192.168.6.101, IP-адрес многоадресной рассылки: 239.255.255.250 и порт: 5697. Когда я запускаю приложение C# на той же виртуальной машине Linux, он работает так, как ожидалось, и может без проблем получать многоадресные сообщения.
Однако, когда я запускаю то же приложение на компьютере под управлением Windows с IP-адресом 192.168.6.100, это не кажется получать любые многоадресные сообщения, несмотря на то, что я вижу многоадресный трафик, поступающий через Wireshark на компьютере с Windows.
Похоже, что приложение не может принять входящую многоадресную рассылку сообщения в Windows, хотя сетевой трафик явно присутствует. Может ли возникнуть проблема с тем, как многоадресная рассылка обрабатывается в Windows, или мне нужно настроить что-то конкретное в системе Windows, чтобы приложение могло получать многоадресный трафик?
int multicastPort = 5697;
string localIP = "192.168.6.100";
using (UdpClient udpClient = new UdpClient())
{
udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, multicastPort));
udpClient.JoinMulticastGroup(IPAddress.Parse(multicastIP), IPAddress.Parse(localIP));
udpClient.MulticastLoopback = true;
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, multicastPort);
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Console.WriteLine("Listening for multicast messages...");
while (true)
{
byte[] buffer = udpClient.Receive(ref remoteEndPoint);
...
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... st-windows
Многоадресная рассылка UDP для Windows ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение