c# UDPClient. Получать случайно не получая пакеты - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть программа. net Framework 4.8, которая в фоновом режиме постоянно читает пакеты udp, отправленные arduino в windows размещенной сети Wi-Fi. После обновления до windows 10 1909 с 1809 года программа случайно перестает работать.

Я установил wireshark, чтобы проверить, получаю ли я какие-либо данные, постоянный поток пакетов UPD на порт 10001 из порта arduino IP, но программа застряла на udpclient.receive без каких-либо исключений.

Это код фонового работника:

        UdpClient udpClient = new UdpClient(10001);
        IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse("192.168.137.4"), 10001);
        byte[] receiveBytes;
        ardunoPacketTimer.Start();
        try
        {
            while (worker.CancellationPending == false)
            {
                receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
                //When whatever is going wrong happens, the program doesn't get past here
                SendArduinoData2Joystick(receiveBytes);
            }
        }

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Windows это был брандмауэр, его отключение решило проблему. Это странно, потому что он не всегда блокировал трафик c, но, поскольку мы отключили брандмауэр windows в размещенной сети, все идет хорошо.

0 голосов
/ 12 февраля 2020

Попробуйте добавить оператор catch с некоторым журналированием, чтобы не просто отбрасывать исключение, которое, вероятно, происходит.

...