Если вы отключите многоадресную обратную связь, можете ли вы отправлять и получать сообщения в одной и той же многоадресной группе?

Представь есть процесс A и процессы B а также Cи я хочу, чтобы все они передавали групповые сообщения группам X.Y.Z.W в порту P, а также A одновременно слушает эти сообщения в этой группе. Это возможно для A получать сообщения от B а также C не получив своего? Другими словами, если я отключу обратную связь (для того, чтобы A не получать сообщения, которые он многоадресный) будет по-прежнему получать сообщения от B а также C или это фактически приведет к тому, что он перестанет даже слушать X.Y.Z.W в порту P?

1

Решение

Да, это будет работать, как вы описываете. Мы используем это в RSP [1] точно так же, как и для любой надежной многоадресной рассылки.

[1] http://www.equalizergraphics.com/documents/design/multicast.html#RSP

1

Другие решения

Из того, что я могу сказать из документации, IP_MULTICAST_LOOP Опция работает на уровне хоста, а не на отдельном сокете. Поэтому, если вы отключите его, никакие процессы на отправляющем хосте не получат многоадресные пакеты; если вы включите его, все процессы на отправляющем хосте получат его.

Что A может сделать, это проверить IP-адрес источника и порт пакетов, которые он получает. Если они совпадают с локальным IP-адресом и портом отправляющего сокета, он должен их игнорировать.

0

По вопросам рекламы [email protected]