Может быть несколько вещей, из-за которых ваши дейтаграммы не доходят до приложения:
Фрейм Ethernet менее 64 байт
Большинство сетевых адаптеров будут дополнять данные на уровне канала передачи данныхтак что это не может быть проблемой.Wireshark не сможет увидеть, что это произошло.Чтобы проверить, попробуйте самостоятельно заполнить данные (скажем, 0xFF
), пока в пакете не будет больше данных, чем 64 байта.К счастью, в наши дни это меньше проблем, но со мной это случалось очень давно.
Неправильная контрольная сумма UDP
Если вычисленная контрольная сумма не совпадает с контрольной суммой, предоставленнойотправитель тогда пакет будет молча отброшен.Wireshark по умолчанию не вычисляет контрольную сумму и подключается до того, как драйвер захватит пакет, особенно если вы запускаете Wireshark в случайном режиме.Вы можете включить проверку контрольной суммы с помощью Правка> Настройки> Протоколы> UDP> Проверить контрольную сумму UDP, если это возможно.
Если вы можете изменить код на стороне отправителя, установите поле заголовка контрольной суммы UDP.для всех нулей, чтобы отключить контрольные суммы.
Настройки сетевого адаптера в Windows
Если ваша машина управляется внутри предприятия, то я знаю как минимум пару плагинов адаптера, которые будут мешать необычным сетевым пакетам.Попробуйте открыть диалоговое окно «Свойства» на своем сетевом адаптере и загляните.
Брандмауэр Windows
Я не эксперт в этом, но я думаю, что настройка по умолчанию брандмауэра Windows позволяет многоадресную передачу.Опять же, если ваш компьютер управляется централизованно, политики могли быть изменены.