2010-02-12 2 views
0

Я пишу программу одноранговой двоичной сокеты. Есть только две конечные точки. Один разъем прослушивает мою систему ноутбуков. Другой сокет транслируется из моей настольной системы. У меня есть третья программа, запущенная на размещенном сервере, который доступен для взаимодействия между ними. Моя проблема заключается в том, что когда ноутбук и рабочий стол находятся в одной сети, у них есть одинаковый IP-адрес в Интернете, но разные IP-адреса интрасети, но когда ноутбук находится в дороге, тогда IP-адреса различны. Чтобы быть действительно одноранговым, я должен написать его так, чтобы после установления соединения два компьютера обменивались данными между собой. Как это обычно выполняется, когда два компьютера могут совместно использовать один и тот же IP-адрес, если они работают в одной сети?Завершение соединения сокета через интранет или интернет

+0

Разве вы не можете использовать другой порт? –

ответ

0

Ваш вопрос действительно: как мне с network address translation в системе P2P?

Одна из возможностей заключается в том, чтобы требовать наличия дыр в системах NAT/брандмауэра, что обеспечит отправку запросов на данный порт на заданный компьютер. Предоставление нескольким клиентам внутри сети потребует многократных отверстий и настройки каждого клиента с соответствующим портом.

Другая возможность, связанная с UDP, - here - Я не просмотрел ее достаточно, чтобы узнать, действительно ли она удаляет брокера из уравнения после рукопожатия.

Как всегда, Google can be your friend.

+0

Спасибо, я не знал о правильной терминологии. – Joshua

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