Может ли библиотека lidgren-network подключаться напрямую к одноранговым сетям с учетом обоих IP-адресов - PullRequest
8 голосов
/ 24 сентября 2010

Я использую библиотеку lidgen-network 3, чтобы попытаться создать одноранговое соединение.Я новичок в сетевом программировании, поэтому я использую эту библиотеку.

Используя функцию DiscoverKnownPeer (), я смог подключиться в своей сети.Что я прочитал в Интернете, так это то, что мне нужно сделать пробой NAT, для чего требуется работающий сервер, находящийся за пределами маршрутизатора.Я надеюсь на решение, которое не требует этого дополнительного сервера.

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

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 04 марта 2011

Нет, вы не сможете установить соединение через NAT без сервера рандеву.

NAT стоит у вас на пути, потому что даже если вы знаете IP-адрес, это приведет вас только к маршрутизатору,Маршрутизатор получает запрос, поступающий из Интернета, и не знает, на какой внутренний IP-адрес его отправлять, поэтому он выбрасывает его.

Функция NAT работает, заставляя обоих пиров отправлять исходящие запросы друг другу,Затем маршрутизатор «знает», что пакеты, направленные на его общедоступный IP-адрес на данном порту, должны отправляться на данный компьютер.

Итак, вам необходимо подключить оба компьютера к внешнему серверу, не находящемуся за NAT, а затем использовать этот внешнийсервер для координации соединения двух скрытых одноранговых узлов NAT (это введение в одноранговый узел, встроенное Лидгреном).

0 голосов
/ 02 мая 2011

Я знаю, что это старо, но ...

Вы не указали, что использование DiscoverKnownPeer () было необходимо в вашей настройке. Если это не так, вы можете настроить одноранговый режим, применив правила переадресации портов на маршрутизаторе.

...