Я просматривал и искал реализацию однорангового TCP-соединения с обоими клиентами за маршрутизаторами, но все, что я получил, было «запутаться»!
Мой случай "немного простейший", так как я уже ЗНАЮ локальные и публичные IP-адреса с обеих сторон .
Итак, на данный момент мне просто НЕ НУЖНО ИСПОЛЬЗОВАТЬ ТРЕТИЙ СЕРВЕР для обнаружения этой информации.
Клиент A: (LocalIP = "192.168.0.1", PublicIP = "аааа ").
Этот клиент будет прослушивать соединение через порт "pppp"
serverSocket = new ServerSocket("pppp");
serverSocket.setSoTimeout(timeOut);
socket = ClientA.serverSocket.accept();*
Клиент B: (LocalIP = "10.10.0.1", PublicIP = "bbbb")
Этот клиент будет пытаться подключиться к «Клиенту А» через порт «pppp»
SocketAddress sockaddr = new InetSocketAddress("a.a.a.a", "pppp");
socket.connect(sockaddr, timeOut);
Конечно, это не будет работать, поэтому с учетом этой информации, какпродолжить?