2013-03-19 70 views
0

我正在運行標準的Java聯網example from Oracles site,它運行一個簡單的敲敲笑話程序。這創建了標準套接字,我相信這是TCP連接(或者我錯了嗎?)。爲什麼TCPview爲這個Java套接字程序顯示TCP和UDP?

令人困惑的是,當我查看TCPView中的端口時,所看到的是端口4444(我們使用Knock-Knock程序連接的端口)顯示了多條線。下面是截圖(full image here): enter image description here

爲什麼它會同時顯示UDP和TCP?它不應該只是TCP?

回答

1

在示例代碼沒有被使用UDP上端口4444你的套裝軟件還示出了它的另一個過程(不同的PID),其被使用UDP端口:

enter image description here

另外,當我運行的代碼示例,我只看到TCP記錄:

enter image description here

我的猜測是你可能有另一個運行DatagramSocket的示例?!您可以驗證示例代碼不是使用UDP端口的示例代碼,方法是將其更改爲使用其他端口。嘗試改變端口5555的KnockKnockServer

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記錄。

+0

非常感謝! – Coffee 2013-05-02 03:22:55

1

這裏有兩種不同的過程。任何機會你有一個陳舊的過程運行udp演示掛?

+0

嗯,也許 - 讓我看看 - 謝謝! – Coffee 2013-03-19 22:57:56