У меня есть две машины A1 и A2, на каждой из которых работает один и тот же встроенный код, который передает пакеты. Третья машина, B3, представляет собой коробку с Windows XP, на которой запущено приложение C# (.NET 4.0), которое прослушивает эти широковещательные сообщения.
Все данные от A1 получены C#, как и ожидалось, 95% данных от A2 получены с прерывистыми, кажущимися случайными, потерянными дейтаграммами UDP.
Когда я смотрю на wireshark на B3, все пакеты с обеих машин приходят именно так, как и ожидалось, но когда я сразу после их получения сбрасываю байты в текстовый файл, я вижу, что дейтаграммы с B2 отсутствуют.
Как может быть, что пакет отображается на wireshark, но иногда не передается моему приложению C #? Я мог бы понять, если бы в дейтаграмме были плохие заголовки и т. д., но Wireshark показывает все, как и ожидалось, даже для этих отсутствующих. Выполняет ли Windows/.NET некоторую проверку, которую Wireshark не выполняет по умолчанию?