как настроить соединение через NAT ?

0
13 сен 2018 12:28
Есть программка типа чата по сети (для общения) использующее шифрование. Идея такая при подключении вводится порт и IP собеседника (данные заранее известны). В общем запускаю 2 проги в каждой пишу локальный адрес (127.0.0.1) и разные порты, что бы не было путаницы. Все прекрасно работает и сообщения приходят. Но стоило мне запустить их на разных ПК, расположенных в разных сетях, они перестали соединяться. Начал вычитывать и наткнулся на такое понятие как NAT, так как ПК подключаются к интернету через роутеры в сети в которых несколько разных ПК. В принципе в общем я понял что это и зачем. Но как реализовать это в JAVA не знаю. Условие такое, что бы роутер не перенастраивать. т.к. прога должна запускаться на любом ПК подключенном к интернету.
Не знаю есть ли смысл показывать код, т.к. вроде он рабочий стандартный сервер - клиент , но если нужно скину.
Нет ли у кого нибудь кода как это реализовать?

Ответов: 1

0
13 сен 2018 13:02
Не факт что получится так сделать.
Вам нужно каким-то образом пробросить внешний порт (с прямым/публичным IP-адресом) с роутера/маршрутизатора провайдера на порт+адрес вашего приложения в локальной сети, т.к. интернет ничего не знает про адреса внутри вашей домашней/локальной сети. Соответственно и в приложениях нужно указывать публичный IP+порт.
Но это все руками нужно настраивать.

Насколько это сложно автоматизировать затрудняюсь сказать. Почитайте, есть еще протоколы для автоматической настройки проброса портов. Раньше еще была такая прога - Hamachi
Модераторы: Нет
Сейчас эту тему просматривают: Нет