Java Jpcap:IP包头长度

Java Jpcap:IP包头长度,java,networking,jpcap,Java,Networking,Jpcap,在JPCap中,我通过以下代码获得IP数据包的报头长度 IPPacket IP_pac = (IPPacket) packet; System.out.println(IP_pac.len); // header length 我通过以下方式获得IP数据包的数据长度: System.out.println(IP_pac.data.length); 现在的问题是,当IP数据包的数据长度为0时,IP数据包(IPV4)的长度应为20字节。但结果显示IP数据包的报头长度为60和5

在JPCap中,我通过以下代码获得IP数据包的报头长度

   IPPacket IP_pac = (IPPacket) packet;
   System.out.println(IP_pac.len); // header length
我通过以下方式获得IP数据包的数据长度:

    System.out.println(IP_pac.data.length);
现在的问题是,当IP数据包的数据长度为0时,IP数据包(IPV4)的长度应为20字节。但结果显示IP数据包的报头长度为60和54。 第二,默认情况下,我认为这些IPOPAC.DATA长度是否为字节?

< P>根据长度为短:

public short length

packet.data
给你一个
byte[]
,因此在此调用
.length
会返回一个
int
(就像所有其他数组一样)。

所以我必须将它从int转换成字节?(也就是说20,30等字节的有效负载)。如果需要有效负载长度,
packet.data.length
就可以了。您还可以在IP数据包报头的总长度(以及Internet报头长度)中获得此信息。有关更多信息,请参阅。