2010-12-01 2 views
0

Я пытаюсь реализовать udp punch holing через Java-сервлет. Однако, когда я использую req.getRemotePort(), я всегда получаю 0 (т. Е. Динамический). Это не помогает. В любом случае? Альтернативные решения?Как переназначить номера динамического порта NAT, если сервер принимает 0 в качестве порта нет?

http://sss.mysimpatico.com/server?authentication=unregistered

код, который печатает первую 0 и один прикрепленный к IP:

final int port = req.getRemotePort(); 
pw.println(port); 
final String ip = req.getRemoteAddr() + ":" + port; 

Существует проблема GAE (пожалуйста, помечайте его, если вы заинтересованы): http://code.google.com/p/googleappengine/issues/detail?id=4210

+1

Предполагая, что вы говорите о HttpServletRequest.getRemotePort(), я не вижу, как он может вернуть нуль. Он должен вернуть исходящий порт подключенного клиента, который не может быть равен нулю. Вы должны были бы рассказать нам об этом намного больше. – EJP 2010-12-01 07:24:01

ответ

1

Ваш вопрос помечен как Google-приложение-движок; Google App Engine использует HTTP (см. Раздел sandbox), HTTP использует TCP не UDP.

+0

Я знал, что http используется tcp. Так? В песочнице только упоминается: «Другие компьютеры могут подключаться только к приложению, создавая запросы HTTP (или HTTPS) на стандартных портах», т. Е. 80. Это порт на сервере. Клиент может подключаться из любого порта. – simpatico 2010-12-01 07:45:25

Смежные вопросы