2010-12-01 8 views
0

私は、Javaサーブレットを使ってudpパンチ穴をあけることを実装しようとしています。しかし、私がreq.getRemotePort()を使うと、私は常に0(つまり動的)を取得します。それは助けにはならない。その周りには何か?代替ソリューション?サーバがポート番号として0を受信した場合、NAT動的ポート番号を中継する方法は?

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

最初の0及びIPに取り付けられた1つを出力するコード:

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

答えて

1

あなたの質問はgoogle-app-engineとタグ付けされています。 Google App EngineはHTTPを使用します(sandboxセクションを参照)。HTTPはTCP not UDPを使用します。

+0

私はhttp used tcpを知っていました。そう? サンドボックスには、「他のコンピュータは、標準ポートでHTTP(またはHTTPS)要求を行うことによってのみアプリケーションに接続できます。」つまり80です。これはサーバー側のポートです。クライアントは、任意のポートから接続できます。 – simpatico

+0

それではUDPと何が関係していますか? 「So?」の後の部分の妥当性は何ですか? – EJP

+0

UDPは、2つのクライアントの間で必要とされる通信です。サーバーとの通信もTCP経由で行う必要がありますか?その後の部分はサンドボックスへの参照を広げます – simpatico

関連する問題