我正在運行標準的Java聯網example from Oracles site,它運行一個簡單的敲敲笑話程序。這創建了標準套接字,我相信這是TCP連接(或者我錯了嗎?)。爲什麼TCPview爲這個Java套接字程序顯示TCP和UDP?
令人困惑的是,當我查看TCPView中的端口時,所看到的是端口4444(我們使用Knock-Knock程序連接的端口)顯示了多條線。下面是截圖(full image here):
爲什麼它會同時顯示UDP和TCP?它不應該只是TCP?
我正在運行標準的Java聯網example from Oracles site,它運行一個簡單的敲敲笑話程序。這創建了標準套接字,我相信這是TCP連接(或者我錯了嗎?)。爲什麼TCPview爲這個Java套接字程序顯示TCP和UDP?
令人困惑的是,當我查看TCPView中的端口時,所看到的是端口4444(我們使用Knock-Knock程序連接的端口)顯示了多條線。下面是截圖(full image here):
爲什麼它會同時顯示UDP和TCP?它不應該只是TCP?
在示例代碼沒有被使用UDP上端口4444你的套裝軟件還示出了它的另一個過程(不同的PID),其被使用UDP端口:
另外,當我運行的代碼示例,我只看到TCP記錄:
我的猜測是你可能有另一個運行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記錄。
非常感謝! – Coffee 2013-05-02 03:22:55