2010-04-10 3 views
2

Я пытаюсь реализовать одноранговую связь.Сетевая связь через две частные сети

Я использую сокеты для связи между ними. Я хочу знать, есть ли какие-либо способы, которыми я могу использовать одно и то же сообщение, когда два одноранговых узла находятся за двумя частными сетями (они не знают общедоступный IP-адрес друг друга.) Я могу думать об общем буфере в хорошо известном месте, средство коммуникации. Но есть ли другой способ сделать это?

ответ

1

Возможно, вам также придется рассмотреть случай, когда два одноранговых узла даже не имеют общедоступных IP-адресов, и в этом случае вы можете использовать методы STUN, чтобы избежать необходимости в центральном сервере. STUN эффективно используется в таких продуктах, как Skype (я думаю), но на этом этапе он остается довольно черным.

Для центрального подхода рассмотрите XMPP, из которых ejabberd - очень популярная реализация. Существуют и другие протоколы обмена сообщениями, такие как новый AMPQ-стандарт.

Эти технологии, вероятно, будут более надежными и масштабируемыми, чем родной протокол на основе сокетов.

0

STUN и TURN являются распространенными способами достижения этого, как уже было опубликовано, и основаны на стандартах. Тем не менее, я видел очень интересный подход к этому, используя сообщения icmp недавно. It's called pwnat, and available here

0

Поскольку оба находятся в разных частных сетях, оба одноранговых узла не могут общаться друг с другом. Вам необходимо иметь общедоступный сервер, чтобы вы могли установить соединение через этот сервер. См. Возвратный материал, Resiprocate для получения более подробной информации

Смежные вопросы