Есть ли способ соединить два компьютера с двухсторонним соединением в разных сетях (у одного есть переадресация портов) - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь создать приложение для обмена мгновенными сообщениями в двух разных сетях. Одна из этих сетей - моя, в которой включена переадресация портов (отправляет трафик c на определенный порт по указанному c IP-адресу). Моя проблема в том, что мне нужно двустороннее соединение (сокеты могут отправлять только на serverSockets, а serverSockets не могут отправлять на сокеты). Есть ли способ подключения к компьютеру через уже существующее соединение? Есть ли библиотека для этого? ie. socket.connect(serverSocket.getConnection, 5001); (я создал свои собственные классы, которые обрабатывают все потоки ввода / вывода и сокеты, мне просто нужна библиотека для функции, которую я могу поместить в класс).

1 Ответ

1 голос
/ 11 февраля 2020

Если вам нужно, чтобы компьютер был подключен к inte rnet для прямого подключения к компьютеру за NAT, ваше приложение может работать, если вы сможете реализовать что-то похожее на reverse ssh tunneling , См. Здесь и здесь, для библиотеки java .

Но я бы рекомендовал для этого какой-то подход клиент-сервер, при котором все подключаются к сервер, и через сервер они соединяются друг с другом.

...