0

Java ソケットについて質問があります。

ネットパッケージクラスを使用して、Java で基本的なサーバークライアント接続を構築しようとしています。まず、Socket クラスを使用して、クライアントが使用するものに接続されたソケットを作成しました。

アドレス= InetAddress.getByName(ip); socket = new Socket(アドレス、ポート);

ip: は IP アドレスの単なる文字列表現で、port はソケットを接続するために指定したポート番号です。

今私の質問は、メソッド getLocalPort() を使用すると、指定したものとは異なるポート番号を取得することです。また、コマンドプロンプトでコマンド「netstat」を使用すると、ポート番号が見つかりません。ソケットは、アクティブな接続のリストで接続されています。

誰もそれがなぜなのか説明できますか?

4

2 に答える 2

1

これnew Socket(address , port );は、で指定したポート番号がリモートポート番号であるためです。たとえば、接続先のポート 8123 でリモート サーバーのソケットが開いている場合は、 と入力しnew Socket(address , 8123);ます。

getLocalPort()で表示されているポートnetstat番号は、ローカル マシンのソケット用に自動生成されたポート番号です。

于 2013-10-23T23:09:05.890 に答える