LINUX.ORG.RU

Udp broadcast message

 , , ,


0

1

Добрый день всем!

Чем отличается тип сообщения броадкаст от не броадкаста сервера от к клиентам? Пишу под линукс, т.е. использую sys/socket Для обычного сообщения, использую sendTo(), до етого заполняю структуру с айпишником клиента который будет принимать. Я так понимаю броадкаст это тип сообщения который будут приходить всем кто в сети. У меня вопрос: Что нужно еще добавить перед сендом, чтоб это сообщения приняли все кто слушают сервер(используют recvfrom) ?

Заранее спасибо, буду рад любым примерам

Из того, что у вас пока не упомянуто — включить SO_BROADCAST на сокете. Вместо IP-адреса получателя ставить broadcast address.

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

broadcast adress как его задать? это значение из enum-a

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

+ко всему,надо учитывать, что броадкаст/мультикаст может зарезаться на роутере.

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

Еще вопрос по описанию сокета, функция bind, для данного типа сообщения где должна быть на сервере перед сендто или на клиенте перед recvfrom?

Потому что сейчас приходит только на один из клиентов, до второго клиента это сообщение не доходит

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

насколько я помню биндить udp не обязательно.. заполняешь SOCKADDR_IN для sendto, а на клиенте ловишь recvfrom и все.

еще не забудь проставить настройки сокету, который будет вещать

int status=1;
setsockopt(sock,SOL_SOCKET,SO_BROADCAST,&status,sizeof(status));

jo_b1ack ★★★★★
()

хватит уже

2-я тема c «Пишу под линукс на С++, т.е. использую sys/socket» - читайте-же уже man`ы..

100500 раз пережёвано, есть man`ы по каждой отдельной функции/сущности, есть разделы info по отдельным вопросам и практике (оно всё есть непосредственно в вашей машине). есть сцуко книги «$subj для идиотов».

Ну сколько уже можно?

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

А вы не вбрасывайте-немного надоели вопросы лентяев нежелающих посмотреть, что у них под носом.

MKuznetsov ★★★★★
()

MAC-адресом и IP-адресом </thread>

А если по теме и развёрнуто, то ОС при определении параметра SO_BROADCAST на сокете, определяет MAC как FF:FF:FF:FF:FF:FF сама, а IP-адрес широковещательного пакета вы уже определяете сами (да-да, тут вас ожидает нежданчик в виде неработоспособности offtopic-систем с некоторыми комбинациями этих адресов). Полный широковещательный адрес - это широковещательный MAC, приведённый выше и айпи вида 255.255.255.255, который должен (не всегда, может ограничиваться администратором системы) приниматься всеми системами независимо от IP-подсети, а есть вариант широковещательного MAC и широковещательного IP заданной подсети (например, 192.168.0.255/24 - последний IP в подсети всегда широковещательный для этой подсети и на него отвечают только системы, у которых назначен адрес этой подсети).

С мультикастами всё веселее, но в данном треде - это оффтоп.

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