вы должны использовать UDP для отправки широковещательного сообщения по сети. при создании сокета с помощью функции socket()
укажите AF_INET
для параметра family
и SOCK_DGRAM
для параметра type
. в некоторых системах необходимо разрешить отправку широковещательного пакета, установив для параметра сокета SO_BROADCAST
значение 1, используя setsockopt()
.
затем используйте вызов функции sendto()
для отправки дейтаграммы и используйте 255.255.255.255
в качестве адреса назначения. (для сокетов дейтаграмм вам не нужно вызывать connect()
, так как нет «соединения»).
в стандартных реализациях этот адрес транслируется на весь компьютер в локальной сети, это означает, что пакет не будет пересекать границы шлюза и не будет получен компьютерами, использующими маску сети, отличную от маски сети отправляющего компьютера.