Я пытаюсь создать одноранговое аудио / видео приложение, но за NAT и за брандмауэром происходит сбой моего приложения, я выяснил, что Skype делает это, а другое приложение также использует другой подход, затем я решил использовать этот подходчто позволит моему приложению работать за офисом / домом NAT.
UDP Перфорация отверстий:
Пока пробовал hping2 и netcat.Сервер, pc1 за nat / firewall и pc2 за nat / firewall
local/1$ nc -u 14141 -l # ME, step 1
remoteServer$ echo "hello" | nc -p 53 -u xx.23.xx.xx 14141 # My server, to say hello
nc: Write error: No route to host
local/2$ hping2 -c 1 -2 -s 14141 -p 53 xx.21.xx.xx # Me from second terminal making a hole
remoteServer$ echo "hello" | nc -p 53 -u xx.23.xx.xx 14141 # My server again say hell
local/1 $ nc -u 14141 -l # ME, step 1 was running and it received "hello" now
hello
Но локальный / 1 как получить привет, без hping2 или что такое hping2?Кто-нибудь может подсказать?Или как я могу просто сделать так, чтобы A (локальный) B (сервер) C (мой друг) общался с одноранговым узлом 2, используя этот метод?
Полезные ссылки: http://www.masquerade.cz/en/nat-tunel-metodou-udp-hole-punching-v-jazyce-java/
Последующие действия: UPnP - лучшее решение?Но он ищет следующий переход, поэтому в этом случае он потерпит неудачу для этой дорожной карты (если я не ошибаюсь):
Me (за NAT) -> MyOffice (с маршрутизатором, 50 ноутбуков) -> ISP1 -> ISP2 -> FriendOffice (маршрутизатор, 90 ноутбуков) -> Друг (за NAT)