如何區分使用java發送到互聯網之前的TCP和UDP數據包?我需要監聽這些數據包並區分它是TCP還是UDP。如何使用Java代碼實現這一點?如何區分帶有java代碼的機器中的TCP和UDP數據包?
更新: 我需要將所有TCP/IP和UDP數據包重定向到服務器(Ip),並且需要跟蹤TCP/IP和UDP數據包的流量並創建日誌。
如何區分使用java發送到互聯網之前的TCP和UDP數據包?我需要監聽這些數據包並區分它是TCP還是UDP。如何使用Java代碼實現這一點?如何區分帶有java代碼的機器中的TCP和UDP數據包?
更新: 我需要將所有TCP/IP和UDP數據包重定向到服務器(Ip),並且需要跟蹤TCP/IP和UDP數據包的流量並創建日誌。
你不能在Java中看到使用TCP的單個數據包,但是當你使用Socket時,它將是TCP,如果你使用的是DatagramSocket,它將是UDP。即班級是不同的,所以你不會混淆它們。
如果您想窺探網絡適配器以查看哪些類型的數據包正在發送,可以使用JPCap。
如果你可以讀取ip包頭信息,你可以完成它。 在ip包頭中包含下一個協議號(6表示TCP,17表示UDP),您應該使用它來區分。
感謝您的回答。我需要將所有TCP/IP和UDP數據包重定向到服務器(Ip),並且需要跟蹤TCP/IP和UDP數據包的流量並製作日誌。 – 2vision2
在這種情況下,您應該讓服務器記錄它發送和接收的所有數據。試圖從外部做到這一點很棘手,我不會建議你這樣做,除非你有多年的網絡編程經驗,即你必須使用本地庫並自己編寫代碼分配。 –