Отправка многоадресной передачи с многосетевого компьютера - PullRequest
0 голосов
/ 14 апреля 2020

Мне нужно отправить многоадресный udp с многосетевого компьютера. Обнаружено, что если сокет не привязан к какому-либо конкретному c интерфейсу, будет использоваться интерфейс по умолчанию (что бы это ни значило). Мой вопрос: возможно ли указать что-то вроде inaddr_any для отправки многоадресного udp со всех доступных интерфейсов или это возможно сделать только путем перечисления всех интерфейсов и отправки вручную с каждого? Есть ли стандарт для этого? Спасибо

1 Ответ

0 голосов
/ 14 апреля 2020

Вы можете указать, с какого сетевого интерфейса отправлять многоадресные пакеты IPv4, установив параметр сокета IP_MULTICAST_IF. Значение, переданное в setsockopt, должно быть адресом struct in_addr, содержащим IP-адрес рассматриваемого интерфейса.

Если вы хотите отправить многоадресный пакет на несколько интерфейсов, вам необходимо вызвать sendto несколько раз, устанавливая опцию IP_MULTICAST_IF перед каждым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...