У меня есть приложение с потоком прослушивателя UDP. Это приложение отлично работает на одном компьютере, но не работает на другом. Я проверил, что IP-адреса установлены на статические и находятся в одной подсети, но по какой-то причине второй компьютер не может прослушивать данные. Это та же ОС Windows и все.
Я удостоверился, что приложение было добавлено в «Разрешить приложение через брандмауэр», а также создал правило для входящих подключений, разрешающее UDP для порта, но все равно не повезло.
Что-нибудь еще нужно проверить, чтобы заставить это работать?
Вот как я подключаюсь:
udpClient = new System.Net.Sockets.UdpClient();
udpClient.JoinMulticastGroup(System.Net.IPAddress.Parse(destIPAddr), System.Net.IPAddress.Parse(localIPAddress));
ipEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Any, listenPort);
udpClient.Client.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.ReuseAddress, true);
udpClient.Client.Bind(ipEndPoint);
udpClient.Client.ReceiveTimeout = 5000; //5 second timeout
И у меня есть поток получения, который проверяет данные:
retByte = udpClient.Receive(ref ipEndPoint);
При работе байты отображаются в текстовом поле, а также в некоторых других индикаторах, показывающих, что данные принимаются.