Инициирование обратного соединения / туннелирование соединения в Java - PullRequest
0 голосов
/ 26 мая 2020

Давайте посмотрим на следующий сценарий Java приложений:

  • программа A на машине 1 достижима в inte rnet
  • program B на машине 2, не общедоступной в inte rnet
  • A необходимо регулярно получать доступ к данным B (требуется установить sh соединение и отправлять / получать данные)

Конечно, можно сделать B общедоступным, но пользователь моего приложения может не захотеть этого делать. Как я выяснил, может помочь «обратное соединение», т.е. B запускает соединение с A, так что A может взаимодействовать с B, но инициация обратная.

В идеале, я можно представить себе такую ​​настройку:

  • небольшая программа C установлена ​​на машинах 1 и 2, постоянно пытаясь поддерживать соединение между ними, инициированная с машины 2
  • программа A подключается к C машины 1
  • C туннелирует соединение с машиной 2
  • C на машине 2 открывает соединение с B -> exchange данные могут начинаться

Это было бы идеально, потому что для A и B они как бы подключаются напрямую, т.е. мне не нужно изменять реализацию этих программ (а это невозможно для B).

Знаете ли вы библиотеку Java (для включения ее в A) или программное обеспечение, которое может реализовать C? Какой для этого правильный термин? TCP-туннель?

...