java.net

Class DatagramPacket

public final class DatagramPacket extends Object

This class models a packet of data that is to be sent across the network using a connectionless protocol such as UDP. It contains the data to be send, as well as the destination address and port. Note that datagram packets can arrive in any order and are not guaranteed to be delivered at all.

This class can also be used for receiving data from the network.

Note that for all method below where the buffer length passed by the caller cannot exceed the actually length of the byte array passed as the buffer, if this condition is not true, then the method silently reduces the length value to maximum allowable value. Written using on-line Java Platform 1.2 API Specification, as well as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). Status: Believed complete and correct.

UNKNOWN: April 28, 1999.

Constructor Summary
DatagramPacket(byte[] buf, int offset, int length)
This method initializes a new instance of DatagramPacket which has the specified buffer, offset, and length.
DatagramPacket(byte[] buf, int length)
Initializes a new instance of DatagramPacket for receiving packets from the network.
DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
Initializes a new instance of DatagramPacket for transmitting packets across the network.
DatagramPacket(byte[] buf, int length, InetAddress address, int port)
Initializes a new instance of DatagramPacket for transmitting packets across the network.
DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
Initializes a new instance of DatagramPacket for transmitting packets across the network.
DatagramPacket(byte[] buf, int length, SocketAddress address)
Initializes a new instance of DatagramPacket for transmitting packets across the network.
Method Summary
InetAddressgetAddress()
Returns the address that this packet is being sent to or, if it was used to receive a packet, the address that is was received from.
byte[]getData()
Returns the data buffer for this packet
intgetLength()
Returns the length of the data in the buffer
intgetOffset()
This method returns the current offset value into the data buffer where data will be sent from.
intgetPort()
Returns the port number this packet is being sent to or, if it was used to receive a packet, the port that it was received from.
SocketAddressgetSocketAddress()
Gets the socket address of the host this packet will be sent to/is coming from
voidsetAddress(InetAddress address)
This sets the address to which the data packet will be transmitted.
voidsetData(byte[] buf)
Sets the data buffer for this packet.
voidsetData(byte[] buf, int offset, int length)
This method sets the data buffer for the packet.
voidsetLength(int length)
Sets the length of the data in the buffer.
voidsetPort(int port)
This sets the port to which the data packet will be transmitted.
voidsetSocketAddress(SocketAddress address)
Sets the address of the remote host this package will be sent

Constructor Detail

DatagramPacket

public DatagramPacket(byte[] buf, int offset, int length)
This method initializes a new instance of DatagramPacket which has the specified buffer, offset, and length.

Parameters: buf The buffer for holding the incoming datagram. offset The offset into the buffer to start writing. length The maximum number of bytes to read.

Since: 1.2

DatagramPacket

public DatagramPacket(byte[] buf, int length)
Initializes a new instance of DatagramPacket for receiving packets from the network.

Parameters: buf A buffer for storing the returned packet data length The length of the buffer (must be <= buf.length)

DatagramPacket

public DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
Initializes a new instance of DatagramPacket for transmitting packets across the network.

Parameters: buf A buffer containing the data to send offset The offset into the buffer to start writing from. length The length of the buffer (must be <= buf.length) address The address to send to port The port to send to

Since: 1.2

DatagramPacket

public DatagramPacket(byte[] buf, int length, InetAddress address, int port)
Initializes a new instance of DatagramPacket for transmitting packets across the network.

Parameters: buf A buffer containing the data to send length The length of the buffer (must be <= buf.length) address The address to send to port The port to send to

DatagramPacket

public DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
Initializes a new instance of DatagramPacket for transmitting packets across the network.

Parameters: buf A buffer containing the data to send offset The offset into the buffer to start writing from. length The length of the buffer (must be <= buf.length) address The socket address to send to

Throws: SocketException If an error occurs IllegalArgumentException If address type is not supported

Since: 1.4

DatagramPacket

public DatagramPacket(byte[] buf, int length, SocketAddress address)
Initializes a new instance of DatagramPacket for transmitting packets across the network.

Parameters: buf A buffer containing the data to send length The length of the buffer (must be <= buf.length) address The socket address to send to

Throws: SocketException If an error occurs IllegalArgumentException If address type is not supported

Since: 1.4

Method Detail

getAddress

public InetAddress getAddress()
Returns the address that this packet is being sent to or, if it was used to receive a packet, the address that is was received from. If the constructor that doesn not take an address was used to create this object and no packet was actually read into this object, then this method returns null.

Returns: The address for this packet.

getData

public byte[] getData()
Returns the data buffer for this packet

Returns: This packet's data buffer

getLength

public int getLength()
Returns the length of the data in the buffer

Returns: The length of the data

getOffset

public int getOffset()
This method returns the current offset value into the data buffer where data will be sent from.

Returns: The buffer offset.

Since: 1.2

getPort

public int getPort()
Returns the port number this packet is being sent to or, if it was used to receive a packet, the port that it was received from. If the constructor that doesn not take an address was used to create this object and no packet was actually read into this object, then this method will return 0.

Returns: The port number for this packet

getSocketAddress

public SocketAddress getSocketAddress()
Gets the socket address of the host this packet will be sent to/is coming from

Returns: The socket address of the remote host

Since: 1.4

setAddress

public void setAddress(InetAddress address)
This sets the address to which the data packet will be transmitted.

Parameters: address The destination address

Since: 1.1

setData

public void setData(byte[] buf)
Sets the data buffer for this packet.

Parameters: buf The new buffer for this packet

Throws: NullPointerException If the argument is null

Since: 1.1

setData

public void setData(byte[] buf, int offset, int length)
This method sets the data buffer for the packet.

Parameters: buf The byte array containing the data for this packet. offset The offset into the buffer to start reading data from. length The number of bytes of data in the buffer.

Throws: NullPointerException If the argument is null

Since: 1.2

setLength

public void setLength(int length)
Sets the length of the data in the buffer.

Parameters: length The new length. (Where len <= buf.length)

Throws: IllegalArgumentException If the length is negative or if the length is greater than the packet's data buffer length

Since: 1.1

setPort

public void setPort(int port)
This sets the port to which the data packet will be transmitted.

Parameters: port The destination port

Since: 1.1

setSocketAddress

public void setSocketAddress(SocketAddress address)
Sets the address of the remote host this package will be sent

Parameters: address The socket address of the remove host

Throws: IllegalArgumentException If address type is not supported

Since: 1.4