SourceForge Jpcap

net.sourceforge.jpcap.net
Class UDPPacket

java.lang.Object
  extended by net.sourceforge.jpcap.net.Packet
      extended by net.sourceforge.jpcap.net.EthernetPacket
          extended by net.sourceforge.jpcap.net.IP.Packet
              extended by net.sourceforge.jpcap.net.IPv4.Packet
                  extended by net.sourceforge.jpcap.net.IPPacket
                      extended by net.sourceforge.jpcap.net.UDPPacket
All Implemented Interfaces:
Serializable, EthernetFields, IP.UDP, IPFields, UDPFields

public class UDPPacket
extends IPPacket
implements UDPFields, IP.UDP

A UDP packet.

Extends an IP packet, adding a UDP header and UDP data payload. Please use IPv4.UDP.Packet for new code.

Version:
$Revision: 1.1 $
Author:
Patrick Charles, Jonas Lehmann, Esmond Pitt
See Also:
Serialized Form
Last modified by:
$Author: esmondpitt $
Last modified at:
$Date: 2008/08/21 02:58:31 $

Nested Class Summary
 
Nested classes/interfaces inherited from class net.sourceforge.jpcap.net.IPPacket
IPPacket.TestProbe
 
Field Summary
 
Fields inherited from class net.sourceforge.jpcap.net.IP.Packet
_ipHeaderLength, _ipOffset
 
Fields inherited from class net.sourceforge.jpcap.net.EthernetPacket
_byteBuffer, _bytes, _ethOffset, _timeval
 
Fields inherited from interface net.sourceforge.jpcap.net.UDPFields
UDP_CSUM_LEN, UDP_CSUM_POS, UDP_DP_POS, UDP_HEADER_LEN, UDP_LEN_LEN, UDP_LEN_POS, UDP_PORT_LEN, UDP_SP_POS
 
Fields inherited from interface net.sourceforge.jpcap.net.IPFields
IP_CODE_LEN, IP_CODE_POS, IP_CSUM_LEN, IP_CSUM_POS, IP_DST_POS, IP_FRAG_LEN, IP_FRAG_POS, IP_HEADER_LEN, IP_ID_LEN, IP_ID_POS, IP_LEN_LEN, IP_LEN_POS, IP_SRC_POS, IP_TOS_LEN, IP_TOS_POS, IP_TTL_LEN, IP_TTL_POS, IP_VER_LEN, IP_VER_POS
 
Fields inherited from interface net.sourceforge.jpcap.net.EthernetFields
ETH_CODE_LEN, ETH_CODE_POS, ETH_DST_POS, ETH_HEADER_LEN, ETH_SRC_POS
 
Constructor Summary
UDPPacket(int lLen, byte[] bytes)
          Create a new UDP packet.
UDPPacket(int lLen, byte[] bytes, Timeval tv)
          Create a new UDP packet.
UDPPacket(int lLen, ByteBuffer bb, Timeval tv)
           
 
Method Summary
 int getChecksum()
          Return the actual packet checksum as received. Derived classes override this to return the most specific checksum, e.g.: The implementation in Packet.getChecksum() returns zero.
 String getColor()
          Fetch ASCII escape sequence of the color associated with this packet type.
 byte[] getData()
          Fetch the data portion of the packet. This is overridden in derived classes to return successively smaller and smaller amounts of data. For example:
  • EthernetPacket.getData() returns the entire Ethernet payload excluding the Ethernet header
  • IP.Packet.getData() only returns the IP payload, i.e. excluding the IP header which is in the Ethernet payload
  • TCPPacket.getData() only returns the TCP payload, i.e. excluding the TCP header which is in the IP payload
 int getDestinationPort()
          Fetches the destination port number.
 byte[] getHeader()
          Fetch header portion of the packet. This is overridden in derived classes to return the header appropriate to the packet class. For example:
 int getLength()
          Fetch the IP payload length in bytes.
 int getSourcePort()
          Fetch the source port number.
 int getUDPChecksum()
          Fetch the UDP checksum.
 byte[] getUDPData()
          Fetch the UDP data as a byte array.
 byte[] getUDPHeader()
          Fetch the UDP header as a byte array.
 boolean isValidChecksum()
          Return true iff all the checksums in the packet are valid, otherwise false. Derived classes with checksums should override, and should call super.isValidChecksum() to check the validity of base class checksums. The Packet.isValidChecksum() implementation just returns true.
 boolean isValidUDPChecksum()
          Return true iff the UDP checksum is valid.
 void setChecksums()
          Set all the checksums in this packet prior to sending. Calling this method sets all the IP, ICMP, IGMP, TCP, UDP etc checksums as appropriate. It is called automatically by PacketOutputStream.writePacket(Packet). Derived classes must override this abstract method, and must call super.setChecksums(), after setting their own checksums (unless super.setChecksums() is abstract, i.e. this method). Otherwise the lower-level checksums will not be correct.

After calling this method the EthernetPacket.hashCode() of this object will probably change.

 String toColoredString(boolean colored)
          Generate string with contents describing this packet.
 
Methods inherited from class net.sourceforge.jpcap.net.IPPacket
getDestinationAddress, getDestinationAddressAsLong, getDestinationAddressBytes, getIpHeaderLength, getSourceAddress, getSourceAddressAsLong, getSourceAddressBytes, onesCompSum
 
Methods inherited from class net.sourceforge.jpcap.net.IPv4.Packet
computeReceiverChecksum, computeReceiverIPChecksum, computeSenderChecksum, computeSenderIPChecksum, getDestinationInetAddress, getFragmentFlags, getFragmentOffset, getId, getIPChecksum, getIPData, getIPHeader, getIPHeaderLength, getIPProtocol, getProtocol, getSourceInetAddress, getTimeToLive, getTypeOfService, getVersion, isValidIPChecksum, setDestinationInetAddress, setSourceInetAddress, toColoredVerboseString
 
Methods inherited from class net.sourceforge.jpcap.net.IP.Packet
getHeaderLength
 
Methods inherited from class net.sourceforge.jpcap.net.EthernetPacket
equals, getDestinationHwAddress, getDestinationMACAddress, getEthernetCRC32, getEthernetData, getEthernetHeader, getEthernetHeaderLength, getEthernetProtocol, getPacketData, getPacketLength, getSourceHwAddress, getSourceMACAddress, getTimeval, hashCode, setDestinationMACAddress, setEthernetProtocol, setSourceMACAddress, toByteArray, toString
 
Methods inherited from class net.sourceforge.jpcap.net.Packet
ipChecksum
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UDPPacket

public UDPPacket(int lLen,
                 byte[] bytes)
Create a new UDP packet.

Parameters:
lLen - link-layer header length
bytes - Packet data

UDPPacket

public UDPPacket(int lLen,
                 byte[] bytes,
                 Timeval tv)
Create a new UDP packet.

Parameters:
lLen - link-layer header length
bytes - Packet data
tv - Timestamp

UDPPacket

public UDPPacket(int lLen,
                 ByteBuffer bb,
                 Timeval tv)
Method Detail

getSourcePort

public int getSourcePort()
Description copied from interface: IP.UDP
Fetch the source port number.

Specified by:
getSourcePort in interface IP.UDP
Returns:
the souce port number.

getDestinationPort

public int getDestinationPort()
Description copied from interface: IP.UDP
Fetches the destination port number.

Specified by:
getDestinationPort in interface IP.UDP
Returns:
the destination port number.

getLength

public int getLength()
Fetch the IP payload length in bytes.

Fetch the total length of the UDP packet, including header and data payload, in bytes.

Overrides:
getLength in class IPv4.Packet
Returns:
the IP payload length in bytes.

getUDPChecksum

public int getUDPChecksum()
Description copied from interface: IP.UDP
Fetch the UDP checksum.

Specified by:
getUDPChecksum in interface IP.UDP
Returns:
the UDP checksum.

getChecksum

public int getChecksum()
Return the actual packet checksum as received. Derived classes override this to return the most specific checksum, e.g.: The implementation in Packet.getChecksum() returns zero.

Overrides:
getChecksum in class IPv4.Packet

getUDPHeader

public byte[] getUDPHeader()
Description copied from interface: IP.UDP
Fetch the UDP header as a byte array.

Specified by:
getUDPHeader in interface IP.UDP
Returns:
the UDP header as a byte array.

getHeader

public byte[] getHeader()
Fetch header portion of the packet. This is overridden in derived classes to return the header appropriate to the packet class. For example:

Overrides:
getHeader in class IP.Packet

getUDPData

public byte[] getUDPData()
Description copied from interface: IP.UDP
Fetch the UDP data as a byte array.

Specified by:
getUDPData in interface IP.UDP
Returns:
the UDP data as a byte array.

getData

public byte[] getData()
Fetch the data portion of the packet. This is overridden in derived classes to return successively smaller and smaller amounts of data. For example:

Overrides:
getData in class IP.Packet

isValidChecksum

public boolean isValidChecksum()
Return true iff all the checksums in the packet are valid, otherwise false. Derived classes with checksums should override, and should call super.isValidChecksum() to check the validity of base class checksums. The Packet.isValidChecksum() implementation just returns true.

Overrides:
isValidChecksum in class IPv4.Packet
Returns:
true iff all the checksums in the packet are valid.

isValidUDPChecksum

public boolean isValidUDPChecksum()
Description copied from interface: IP.UDP
Return true iff the UDP checksum is valid.

Specified by:
isValidUDPChecksum in interface IP.UDP
Returns:
true or false.

setChecksums

public void setChecksums()
Set all the checksums in this packet prior to sending. Calling this method sets all the IP, ICMP, IGMP, TCP, UDP etc checksums as appropriate. It is called automatically by PacketOutputStream.writePacket(Packet). Derived classes must override this abstract method, and must call super.setChecksums(), after setting their own checksums (unless super.setChecksums() is abstract, i.e. this method). Otherwise the lower-level checksums will not be correct.

After calling this method the EthernetPacket.hashCode() of this object will probably change.

Overrides:
setChecksums in class IPv4.Packet

toColoredString

public String toColoredString(boolean colored)
Generate string with contents describing this packet.

Overrides:
toColoredString in class IP.Packet
Parameters:
colored - whether or not the string should contain ansi color escape sequences.

getColor

public String getColor()
Fetch ASCII escape sequence of the color associated with this packet type.

Overrides:
getColor in class IP.Packet
Returns:
ASCII escape sequence string

Copyright © Patrick Charles & Jonas Lehmann, 2001; Esmond Pitt, 2008.