Пробой UDP не работает в Windows, но Linux в порядке
У меня проблема с UDP-связью между компьютерами Linux/Windows. Я реализовал простой протокол связи P2P через UDP, используя сервер ретрансляции. Он использует дырочку UDP, чтобы исключить роль сервера в передаче данных. Передача данных между одноранговыми узлами и сервером осуществляется по TCP, в то время как данные передаются по UDP между одноранговыми узлами.
Все отлично работает при использовании машин Linux с обеих сторон. Но используя Windows, программа отказывается устанавливать TCP-соединение с сервером. Я отключил брандмауэр и антивирусную защиту и попытался снова. Затем соединение между узлом и сервером установилось успешно, но между узлами не было отправлено пакетов UDP.
Я использую Cygwin для компиляции программы на Windows. Исходный код простой C с (традиционные сокеты. Ничего особенного)
Это связано с протоколом или брандмауэром? Как я могу проверить?