Давайте посмотрим на следующий сценарий 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-туннель?