Русские Блоги
Нет необходимости предлагать соединение перед использованием протокола UDP для передачи информации. Другими словами, клиент отправляет информацию на сервер. Клиенту нужно только указать IP-адрес сервера и номер порта, а затем инкапсулировать информацию в сообщение, которое нужно отправить, и отправить его. Что касается того, существует ли сервер или может ли пакет быть принят, клиенту все равно.
Широковещательная передача в сети относится к методу, с помощью которого хост отправляет данные всем хостам в той же подсети (той же локальной сети), что и хост.
2. Характеристики вещания
Вещание неотделимо от широковещательного адреса: все сетевые карты хоста в одной подсети (локальной сети) будут получать пакеты данных от широковещательного адреса в сегменте сети.Широковещательный адрес применяется ко всем хостам в локальной сети。 Широковещательный адрес (Broadcast Address) — это адрес, специально используемый для одновременной отправки на все станции в сети (обычно ссылающиеся на одну и ту же подсеть).
Разница между широковещательным UDP и одноадресным UDP заключается в том, что IP-адрес различен: широковещательная передача использует широковещательный адрес 255.255.255.255 для отправки сообщений каждому узлу в той же широковещательной сети. Стоит подчеркнуть: Локальная широковещательная информация не пересылается маршрутизатором , Конечно, это очень легко понять, потому что, если маршрутизатор передает широковещательную информацию, это неизбежно приведет к парализации сети.
На самом деле, как следует из названия, вещание — это разговор со всеми в локальной сети.Но широковещательная рассылка по-прежнему должна указывать номер порта получателя., Потому что для приемника невозможно слушать трансляцию на всех портах.
[Возможности UDP-трансляции заключаются в следующем]:
Может отправлять данные всем хостам в широковещательном домене;
Он не может пересекать разные сети и изолирован маршрутизаторами.
Установить параметры сокета
4, реализация UDP-трансляции
Во-вторых, многоадресная рассылка UDP
1. Понятие многоадресной рассылки
Одноадресная передача используется для сквозной связи между двумя хостами, а широковещательная передача используется для передачи данных от одного хоста ко всем хостам во всей локальной сети. Одноадресная и широковещательная рассылка — это две крайности: либо связь с одним хостом, либо связь с хостами по всей локальной сети. На самом деле, Часто необходимо обмениваться данными с определенным набором хостов, а не со всеми хостами во всей локальной сети, что является целью многоадресной рассылки.
Технология IP multicast (также известная как multicast или multicast) — это сеть TCP / IP, которая позволяет одному или нескольким хостам (многоадресному источнику) отправлять один пакет данных нескольким хостам (один раз, одновременно). технология. Многоадресная передача — это многоточечная связь, данные отправляются и принимаются только в одном пакете, что является одним из эффективных способов экономии пропускной способности сети. В сетевых приложениях, когда сигнал узла должен быть передан нескольким узлам, будь то повторный двухточечный метод связи или широковещательный метод, пропускная способность сети серьезно теряется. Лучше всего использовать только многоадресную рассылку. Многоадресная рассылка позволяет одному или нескольким источникам многоадресной рассылки отправлять пакеты данных только определенной группе многоадресной рассылки, и только узлы, которые присоединяются к группе многоадресной рассылки, могут принимать пакеты данных.
Адрес многоадресной рассылки
Многоадресная IP-связь должна опираться на многоадресные IP-адреса. В IPv4 это IP-адрес класса D, варьирующийся отС 224.0.0.0 по 239.255.255.255 И разделен на три категории: многоадресный адрес локальной линии, зарезервированный многоадресный адрес и многоадресный адрес разрешения управления:
1) Диапазон адресов многоадресной рассылки локальной линии: 224.0.0.0
224.0.0.255, который является адресом, зарезервированным для протоколов маршрутизации и других целей. Маршрутизатор не пересылает IP-пакеты, принадлежащие этому диапазону;
2) Зарезервированный адрес многоадресной рассылки — 224.0.1.0
238.255.255.255, который может использоваться во всем мире (например, в Интернете) или сетевых протоколах;
3) Права на управление Адрес многоадресной рассылки: 239.0.0.0
239.255.255.255, который может использоваться организацией внутри организации. Подобно частному IP-адресу, он не может использоваться в Интернете и может ограничивать диапазон многоадресной рассылки.

3. Особенности многоадресной рассылки
Многоадресный сервер отправляет данные только один раз для определенного многоадресного адреса, но все клиенты в группе могут получать данные;
Как и в случае одноадресной передачи, многоадресная передача может передаваться в глобальной сети, то есть Интернет, а широковещательная передача может выполняться только в одной локальной сети;
Общая пропускная способность сервера не ограничена пропускной способностью клиента;
Присоединитесь к определенной многоадресной группе, чтобы получить данные, предназначенные для этой многоадресной группы.
По сравнению с одноадресной рассылкой, в многоадресной рассылке отсутствует механизм исправления ошибок, его трудно компенсировать при возникновении ошибки, но эта функция может быть реализована на прикладном уровне;
Поддержка многоадресной сети имеет недостатки и требует поддержки маршрутизаторов и стеков сетевых протоколов.
Как отправить TCP или UDP пакет в Linux?

Часто при тестировании каких-либо приложений может возникнуть необходимость проверить, доходят ли определенные пакеты по udp/tcp до адресата, например, при проверке функционирования фаервола или же проверки работоспособности проброса портов. В данной статье будет описан простой способ это сделать с помощью командой строки.
Как отправить TCP пакет на определенный ip:порт в Linux
Для отправки tcp пакета на определенный IP адрес и определенный порт, можно воспользоваться следующей командой:
1.2.3.4 — это IP адрес, на который мы будем посылать наш tcp пакет.
12345 — это порт, на который мы будем посылать наш tcp пакет
Альтернативным вариантом может быть использование утилиты nmap:
Как отправить UDP пакет на определенный ip:порт в Linux
Для отправки udp пакета на определенный IP адрес и определенный порт, можно воспользоваться следующей командой:
1.2.3.4 — это IP адрес, на который мы будем посылать наш udp пакет.
12345 — это порт, на который мы будем посылать наш udp пакет
Альтернативным вариантом может быть использование утилиты nmap:
eth0 — название сетевого интерфейса, который мы будем прослушивать
12345 — номер порта
Как сделать broadcast рассылку сообщений по UDP используя Socket?
К нему подключаются клиенты, шлют что-то, он в отдельном потоке потихоньку это что-то слушает и реагирует.
Тут всё работает.
В какой-то момент времени нужно всем клиентам рассказать, что что-то произошло.
Я по наивности своей решил, что это делается вот так:
И получаю в этом месте исключение
Было у меня подозрение, что косяк в том, что сокет просто занят в данный момент времени прослушиванием, поэтому ему не до отправки. Но проверка показала, что это не так.
Прошу подсказки: куда копать?
Заранее всем спасибо за советы
- Вопрос задан более двух лет назад
- 511 просмотров
- Вконтакте

Сам спросил, сам ответил.
Оказывается, нужно было чуть внимательнее читать документацию, хотя там и не всё так очевидно.
Цитата с сайта майкрософт:
Ну и применять вместо Send нужно SendTo, просто ему вместо конкретного адреса в EndPoint передавать
Как послать бродкастный пакет udp
Он не может пересекать разные сети и изолирован маршрутизаторами. 
239.255.255.255, который может использоваться организацией внутри организации. Подобно частному IP-адресу, он не может использоваться в Интернете и может ограничивать диапазон многоадресной рассылки. 
UDP сокет для прослушивания broadcast
Сообщение было отмечено Horwood как решение