簡體   English   中英

如何使用Java代碼區分機器中的TCP和UDP數據包?

[英]How to differentiate TCP and UDP packets in machine with java code?

在使用Java發送到Internet之前,如何區分TCP和UDP數據包? 我需要聽那些數據包並區分是TCP還是UDP。 如何使用Java代碼實現這一目標?

更新:我需要將所有TCP / IP和UDP包重定向到服務器(Ip),並且需要跟蹤TCP / IP和UDP數據包的流量並進行日志記錄。

在Java中,您看不到帶有TCP的單個數據包,但是當您使用Socket時,它將是TCP,如果您使用DatagramSocket,則它將是UDP。 也就是說,類是不同的,所以沒有機會將它們混淆。

如果要監聽網絡適配器以查看正在發送的數據包類型,則可以使用JPCap。

如果您正在偵聽套接字上的數據包,則需要指定套接字類型。

java.net.DatagramSocket的UDP和java.net.Socket的TCP,那么你將永遠知道你做了什么類型的數據包。 還是您想嗅探流量並以這種方式區分。

如果您可以讀取ip數據包標頭信息,則可以完成。 在ip數據包標頭中包含下一個協議編號(6表示TCP,17表示UDP),您應該使用它來區分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM