Java-реализация NAT Traversal / HolePunching TPC - PullRequest
1 голос
/ 10 февраля 2012

Я просматривал и искал реализацию однорангового 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);

Конечно, это не будет работать, поэтому с учетом этой информации, какпродолжить?

...