LINUX.ORG.RU

Всё примерно так же, как обычно, только используется специальный широковещательный адрес. И ещё, в интернете это работать не будет, к сожалению.

urquan
()
Последнее исправление: urquan (всего исправлений: 1)
Ответ на: комментарий от urquan

У меня три машины в локальной сети. Задача чтобы они знали о работоспособности соседей. Использую адреса вида 192.168.1.255 при этом видно что программа слушает порт но отправки соседям не происходит…

rusproger
() автор топика

Для работы широковещательных сокетов нужно привязываться/биндится по интерфейсу. То есть, сначала выкорчёвываешь список адресов/интерфейсов и выбираешь нужный, на который уже можешь слать широковещательный пакет. Ну или просто передавай имя интерфейса аргументом программе.

nickleiten ★★★
()
Ответ на: комментарий от xpahos

Перечитай первый пост, там вроде все понятно.

Слышал про SOCK_DGRAM, setsockopt, SO_BROADCAST? Чего тогда в тред лезешь?

anonymous
()
Ответ на: комментарий от anonymous

Именно так и настраиваю сокет. Кроме того делаю безблокировочным. Столкнулся с неприятным косяком. При отправке сообщения в некоторый момент сообщения перестают отправляться в сеть, но накапливаются в буфере. Так происходит несколько секунд, затем содержимое буфера разом отправляется и далее отправка идёт штатно. Функция sendto возвращает положительное значение.

rusproger
() автор топика
Ответ на: комментарий от anonymous

Не хочу тратить системные ресурсы впустую, создавая два сокета. Прикрутил к одному но наблюдаю баг с перерывами в отправке. Возможно это связано с высокой загрузкой сети

rusproger
() автор топика
Ответ на: комментарий от anonymous

Первый пост не описание задачи, а возможно косяк проектирования. Может там вовсе не броадкасты нужны, а мультикасты.

xpahos ★★★★★
()
Ответ на: комментарий от rusproger

Можно через один сокет sendmmsg несколько пакетов слать одним сисколом.

xpahos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.