2009-07-06 12 views
0

サーバーに接続するために使用するローカルポートを知る必要があるコードがあります。Javaのsocket.localPort()は常に-1を報告します

Socket.localPort()呼び出しは常に-1を返すようです。また、Socket.toString()は "port = 33031、localport = -1"のようなものを返します。

誰にもこの理由と、ローカル側のポート番号を取得する方法を知っていますか?私はGNU Classpath 0.97.2です - これは単なるAPIバグですか、私はこの呼び出しを理解できませんか?

答えて

0

java.netパッケージからSocketクラスを見ている場合、ソケットがまだバインドされていない場合は-1が返されます。このメソッドは静的メソッドではなく、localPortだけでなく、getLocalPortという名前を使用します。 GNU Classpathでは、おそらく-1は同じことを意味します。

+0

うーん...私は間違いなく接続し、データを前後に送信しています。プラス私はwiresharkでそれを参照してください。 .getLocalPort()は、私が意味することです...私はSocketChannelを使用しています - sc.socket()。getLocalPort() –

関連する問題