Проблема многоадресной рассылки / сокетов - PullRequest
0 голосов
/ 22 июня 2011

У меня проблема с многоадресной рассылкой / сокетами, которую я не могу решить.

Если я запускаю 2 приложения на 2 разных ПК через порт 4000 и ip 225.0.0.1, все работает отлично.Если я попытаюсь присоединиться к порту 5000 JoinMulticastGroup 225.0.0.2, он не будет работать, потому что, если я правильно понял, если вы запускаете приложения с портом 4000, вы можете использовать только этот порт.

Теперь, какнам нужно запустить несколько приложений, которые обмениваются данными через многоадресную рассылку на одном компьютере, и я не могу объединять группы с другими портами, я должен запускать все приложения на одном и том же порту, но это кажется невозможным.Я уже пытался установить опцию сокета SO_REUSEADDR, но это не помогло.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

> "если вы запускаете приложения с портом 4000, вы можете использовать только этот порт."

Не совсем: если вы подключите сокет к порту 4000, то вы не сможете подключитьодин и тот же сокет для другого порта (если только вы не используете сокет, это другая история, и она все еще не решает вашу проблему).Тем не менее, вы можете создать несколько сокетов в вашем приложении, и каждый из них может объединять разные многоадресные рассылки, но вы не можете использовать один сокет для изменения порта, к которому он подключен. sscce соответствует) пример того, что вы пытаетесь сделать, поэтому мы можем конкретно указать, где вы идете не так.

0 голосов
/ 24 июня 2011

Хорошо, спасибо за помощь, но я думаю, что понял, в чем проблема.Я исправил проблему запуска нескольких приложений, добавляющих SO_REUSEADDR перед привязкой в ​​jrtblib, которую использует созданный мной плагин.Теперь это работает, потому что мне пришлось добавить опцию также в сокет rtcp, а не только в сокет rtp.Другая проблема заключается в том, что я неправильно понял использование jrtplib.Я пытался использовать тот же клиент для отправки и получения, но это не то, как должен работать jrtplib.Используя один и тот же клиент для отправки и получения, я был вынужден использовать один и тот же порт для всех клиентов, и это создавало проблемы.Теперь, когда я запускаю специальный плагин для отправки и еще один для получения, все работает как шарм.

...