У меня есть приложение (написанное на C/C++), которое передает UDP между многими хостами Windows и Linux внутри локальной сети (через winsock/Linux-Sockets). Я использую только один порт, и только один Socket на каждом хосте. Некоторые сообщения - Broadcastet, ответы часто одноадресные, но некоторые из них также широковещательные. Everthing работает до сих пор, но:Как провести различие между широковещательными передачами UDP и Unicast?
Как я могу узнать, был ли полученный мной Paket (через recvfrom) широковещательный или одноадресный?
Единственное, что я нашел, это отправить эту информацию внутри полезной нагрузки или использовать разные порты. И не очень приятно ...
В любом случае, вы можете вообще обмануть людей, передав их на уровне Ethernet и используя одноадресный адддресс на уровне IP или наоборот. – Flexo