QNX.ORG.RU

Разработка => Программирование под QNX 4.x => Тема начата: boxster от Апреля 12, 2018, 10:05:32 am



Название: Multicast
Отправлено: boxster от Апреля 12, 2018, 10:05:32 am
Добрый день!
Помогите разобраться с реализацией мультикаста.

Имеются четыре QNX машины (для примера).
ВМ1 192.168.1.10 - источник UDP дейтаграмм
ВМ2 192.168.2.11 - хотим принимать дейтаграммы
ВМ3 192.168.2.12 - хотим принимать дейтаграммы
ВМ4 192.168.1.13 (192.168.2.13 доп. айпи через алиас) - в роли роутера (пересылает трафик участникам мультикаст группы)
       

На ВМ1 написал программу, которая шлет UDP дейтаграммы на адрес группы 239.210.1.2, (порт к примеру 2000).
На ВМ2 и ВМ3 хочу получать данные дейтаграммы.
НА ВМ2 и ВМ3 написал программы которые просто принимают дейтаграммы на свой сокет.(это у меня работало в юникаст режиме)
ВМ4 будет играть роль мультикаст роутера.

Каким образом настроить ВМ4 (мультикаст роутер)?
Каким образом связать ВМ2 и ВМ3 с групповым адрессом? и получать дейтаграммы от ВМ1
Я так понял с mrouted утилитой работать надо но примера конкретного не нашел.


Название: Re: Multicast
Отправлено: darkelf от Апреля 12, 2018, 10:40:29 am
Каким образом связать ВМ2 и ВМ3 с групповым адресом? и получать дейтаграммы от ВМ1
в Вашей программе, которая принимает сообщения, необходимо вызвать setsockopt(fd, AF_INET, SOCK_DGRAM, IP_ADD_MEMBERSHIP, ...) (https://www.tldp.org/HOWTO/Multicast-HOWTO-6.html) для присоединения к группе. Правда наличие поддержки этого запроса, если не путаю, может зависеть от версии менеджера сокетов. Поддержка заявлена в Tcpip (TCP/IP 5.0) и отсутствует в Socket/Socklet(TCP 4.25)

Каким образом настроить ВМ4 (мультикаст роутер)?
Я так понял с mrouted утилитой работать надо но примера конкретного не нашел.
сорри, тут подсказать не могу. Вообще в TCP/IP 5.0 есть справка по mrouted, в том числе и примеры конфигурационных файлов, можно начать с неё.


Название: Re: Multicast
Отправлено: boxster от Апреля 12, 2018, 12:38:22 pm
Вообщем подключили компы условного отправителя и получателей в сеть, где имеется штатный роутер Asus RT-N16, посылки стали приходить.
Так что по всей видимости программы на отправителе и получателе работоспособные.
Еще не проходит пинг 224.0.0.1 в сети в отсутствие роутера.
Вероятно нужно настроить корректно mrouted на ВМ-маршрутизаторе (пример в мануале не информативен и не нагляден)