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