Завершение подключения к сокетам через интрасети или в Интернете

StackOverflow https://stackoverflow.com/questions/2254509

Вопрос

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

Это было полезно?

Решение

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

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

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

Как всегда, Google может быть вашим другом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top