0

私は、オラクルのサイト から標準の Java ネットワーキングの例を実行し ています。これは、単純なノックノック ジョーク プログラムを実行します。これにより、TCP接続であると思われる標準ソケットが作成されます(または、ここで間違っていますか?)。

私を混乱させているのは、TCPViewでポートを表示すると、ポート 4444 (Knock-Knock プログラムで接続するもの) に複数の行が表示されていることです。スクリーンショットは次のとおりです(完全な画像はこちら): ここに画像の説明を入力

UDP と TCP の両方が表示されるのはなぜですか? それは TCP だけであるべきではありませんか?

4

2 に答える 2

1

サンプル コードでは、ポート 4444 で UDP を使用しているものはありません。TCPViewは、UDPポートを使用している別のプロセス (異なる PID) であることも示しています。

ここに画像の説明を入力

また、サンプル コードを実行すると、TCPレコードのみが表示されます。

ここに画像の説明を入力

私の推測では、DatagramSocket で別のサンプルを実行している可能性があります。別のポートを使用するように変更することにより、サンプル コードがUDPポートを使用するものではないことを確認できます。たとえば、 KnockKnockServerでポートを 5555 に変更してみてください:

    ServerSocket serverSocket = null;
    try {
        serverSocket = new ServerSocket(5555);
    } catch (IOException e) {
        System.err.println("Could not listen on port: 5555.");
        System.exit(1);
    }

およびKnockKnockClientで:

    try {
        kkSocket = new Socket("localhost", 5555);
        out = new PrintWriter(kkSocket.getOutputStream(), true);
        in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));

このポートにUDPレコードがあるかどうかを確認します。

于 2013-05-02T01:30:52.310 に答える
1

そこには2つの異なるプロセスがあります。udp デモを実行している古いプロセスがぶらぶらしている可能性はありますか?

于 2013-03-19T22:54:24.600 に答える