Package org.pcap4j.packet
Class AbstractPacket
- java.lang.Object
-
- org.pcap4j.packet.AbstractPacket
-
- Direct Known Subclasses:
ArpPacket
,BsdLoopbackPacket
,CompressedPacket
,DnsPacket
,Dot11ManagementPacket
,Dot11Selector
,Dot1qVlanTagPacket
,EncryptedPacket
,EthernetPacket
,FragmentedPacket
,GtpSelector
,GtpV1Packet
,HdlcPppPacket
,IcmpV4CommonPacket
,IcmpV4DestinationUnreachablePacket
,IcmpV4EchoPacket
,IcmpV4EchoReplyPacket
,IcmpV4InformationReplyPacket
,IcmpV4InformationRequestPacket
,IcmpV4ParameterProblemPacket
,IcmpV4RedirectPacket
,IcmpV4SourceQuenchPacket
,IcmpV4TimeExceededPacket
,IcmpV4TimestampPacket
,IcmpV4TimestampReplyPacket
,IcmpV6CommonPacket
,IcmpV6DestinationUnreachablePacket
,IcmpV6EchoReplyPacket
,IcmpV6EchoRequestPacket
,IcmpV6HomeAgentAddressDiscoveryReplyPacket
,IcmpV6HomeAgentAddressDiscoveryRequestPacket
,IcmpV6MobilePrefixAdvertisementPacket
,IcmpV6MobilePrefixSolicitationPacket
,IcmpV6NeighborAdvertisementPacket
,IcmpV6NeighborSolicitationPacket
,IcmpV6PacketTooBigPacket
,IcmpV6ParameterProblemPacket
,IcmpV6RedirectPacket
,IcmpV6RouterAdvertisementPacket
,IcmpV6RouterSolicitationPacket
,IcmpV6TimeExceededPacket
,IllegalPacket
,IpSelector
,IpV4Packet
,IpV6ExtFragmentPacket
,IpV6ExtOptionsPacket
,IpV6ExtRoutingPacket
,IpV6ExtUnknownPacket
,IpV6Packet
,LinuxSllPacket
,LlcPacket
,PcapPacket
,PppPacket
,PppSelector
,RadiotapPacket
,SctpPacket
,SnapPacket
,Ssh2BinaryPacket
,Ssh2DebugPacket
,Ssh2DisconnectPacket
,Ssh2IgnorePacket
,Ssh2KexDhInitPacket
,Ssh2KexDhReplyPacket
,Ssh2KexInitPacket
,Ssh2NewKeysPacket
,Ssh2ServiceAcceptPacket
,Ssh2ServiceRequestPacket
,Ssh2UnimplementedPacket
,Ssh2VersionExchangePacket
,SshPacket
,TcpPacket
,UdpPacket
,UnknownPacket
public abstract class AbstractPacket extends java.lang.Object implements Packet
Abstract immutable packet class. If you usePropertiesBasedPacketFactory
, this subclass must implement the following method:public static Packet newPacket(byte[] rawData, int offset, int length) throws IllegalRawDataException
- Since:
- pcap4j 0.9.1
- Author:
- Kaito Yamada
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractPacket.AbstractBuilder
Abstract packet builder class.static class
AbstractPacket.AbstractHeader
Abstract immutable header class.-
Nested classes/interfaces inherited from interface org.pcap4j.packet.Packet
Packet.Builder, Packet.Header
-
-
Constructor Summary
Constructors Constructor Description AbstractPacket()
-
Method Summary
Modifier and Type Method Description protected java.lang.String
buildHexString()
This method builds the valuetoHexString()
will return using the return value ofgetRawData()
.protected byte[]
buildRawData()
This method builds the valuegetRawData()
will return by concatenating the header's raw data and the payload's raw data.protected java.lang.String
buildString()
This method builds the valuetoString()
will return by concatenating the header's string representation and the payload's string representation.protected int
calcHashCode()
This method calculates the valuehashCode()
will return using the header's hash code and the payload's hash code.protected int
calcLength()
This method calculates the valuelength()
will return by adding up the header length and the payload length.boolean
equals(java.lang.Object obj)
Indicates whether some other object is "equal to" this one.abstract Packet.Builder
getBuilder()
Returns a new Builder object populated with this object's fields' values.Packet.Header
getHeader()
Returns the Header object representing this packet's header.Packet
getPayload()
Returns the Packet object representing this packet's payload.byte[]
getRawData()
Returns this packet's raw data.int
hashCode()
Returns a hash code value for the object.int
length()
Returns the packet length in bytes.java.lang.String
toHexString()
Returns the hex string representation of this object.java.lang.String
toString()
Returns a string representation of the object.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.pcap4j.packet.Packet
contains, get, getLowerLayerOf, iterator
-
-
-
-
Method Detail
-
getHeader
public Packet.Header getHeader()
Returns the Header object representing this packet's header. This subclass have to override this method if the packet represented by the subclass has a header.
-
getPayload
public Packet getPayload()
Returns the Packet object representing this packet's payload. This subclass have to override this method if the packet represented by the subclass has a payload.- Specified by:
getPayload
in interfacePacket
- Returns:
- the Packet object representing this packet's payload. May be null if the payload doesn't exist
-
calcLength
protected int calcLength()
This method calculates the valuelength()
will return by adding up the header length and the payload length. If you write this subclass which represents a packet with extra parts (e.g. a trailer), you need to override this method.- Returns:
- a calculated length
-
length
public int length()
Returns the packet length in bytes. This method callscalcLength()
and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.
-
buildRawData
protected byte[] buildRawData()
This method builds the valuegetRawData()
will return by concatenating the header's raw data and the payload's raw data. If you write this subclass which represents a packet with extra parts (e.g. a trailer), you need to override this method.- Returns:
- a raw data built
-
getRawData
public byte[] getRawData()
Returns this packet's raw data. This method callsbuildRawData()
and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time. More correctly, this method returns a copy of the cached value, so that the cache can't be changed.- Specified by:
getRawData
in interfacePacket
- Returns:
- this packet's raw data, namely the byte stream which is actually sent through real network
-
getBuilder
public abstract Packet.Builder getBuilder()
Description copied from interface:Packet
Returns a new Builder object populated with this object's fields' values.- Specified by:
getBuilder
in interfacePacket
- Returns:
- a new Builder object populated with this object's fields values
-
buildHexString
protected java.lang.String buildHexString()
This method builds the valuetoHexString()
will return using the return value ofgetRawData()
. Each octet in this return value is separated by a white space. (e.g. 00 01 02 03 aa bb cc)- Returns:
- a hex string representation of this object
-
toHexString
public java.lang.String toHexString()
Returns the hex string representation of this object. This method callsbuildHexString()
and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.- Returns:
- a hex string representation of this object
-
buildString
protected java.lang.String buildString()
This method builds the valuetoString()
will return by concatenating the header's string representation and the payload's string representation. If you write this subclass which represents a packet with extra parts (e.g. a trailer), you need to override this method.- Returns:
- a string representation of this object
-
toString
public java.lang.String toString()
Returns a string representation of the object. This method callsbuildString()
and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
Indicates whether some other object is "equal to" this one. This method firstly compares this packet's header using the header's equals(Object) method, then compares this packet's payload using the payload's equals(Object) method. If you write this subclass with fields which represent somethings other than header or payload, you need to override this method.- Overrides:
equals
in classjava.lang.Object
-
calcHashCode
protected int calcHashCode()
This method calculates the valuehashCode()
will return using the header's hash code and the payload's hash code. If you write this subclass which represents a packet with extra parts (e.g. a trailer), you need to override this method.- Returns:
- a calculated hash code value for the object
-
hashCode
public int hashCode()
Returns a hash code value for the object. This method callscalcHashCode()
and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.- Overrides:
hashCode
in classjava.lang.Object
-
-