public final class TFTPDataPacket extends TFTPPacket
Details regarding the TFTP protocol and the format of TFTP packets can
be found in RFC 783. But the point of these classes is to keep you
from having to worry about the internals. Additionally, only very
few people should have to care about any of the TFTPPacket classes
or derived classes. Almost all users should only be concerned with the
TFTPClient
class
receiveFile()
and
sendFile()
methods.
TFTPPacket
,
TFTPPacketException
,
TFTP
Modifier and Type | Field and Description |
---|---|
(package private) int |
_blockNumber
The block number of the packet.
|
(package private) byte[] |
_data
The data stored in the packet.
|
(package private) int |
_length
The length of the data.
|
(package private) int |
_offset
The offset into the _data array at which the data begins.
|
static int |
MAX_DATA_LENGTH
The maximum number of bytes in a TFTP data packet (512)
|
static int |
MIN_DATA_LENGTH
The minimum number of bytes in a TFTP data packet (0)
|
_address, _port, _type, ACKNOWLEDGEMENT, DATA, ERROR, MIN_PACKET_SIZE, READ_REQUEST, SEGMENT_SIZE, WRITE_REQUEST
Constructor and Description |
---|
TFTPDataPacket(java.net.DatagramPacket datagram)
Creates a data packet based from a received
datagram.
|
TFTPDataPacket(java.net.InetAddress destination,
int port,
int blockNumber,
byte[] data) |
TFTPDataPacket(java.net.InetAddress destination,
int port,
int blockNumber,
byte[] data,
int offset,
int length)
Creates a data packet to be sent to a host at a given port
with a given block number.
|
Modifier and Type | Method and Description |
---|---|
(package private) java.net.DatagramPacket |
_newDatagram(java.net.DatagramPacket datagram,
byte[] data)
This is a method only available within the package for
implementing efficient datagram transport by elminating buffering.
|
int |
getBlockNumber()
Returns the block number of the data packet.
|
byte[] |
getData()
Returns the byte array containing the packet data.
|
int |
getDataLength()
Returns the length of the data part of the data packet.
|
int |
getDataOffset()
Returns the offset into the byte array where the packet data actually
starts.
|
java.net.DatagramPacket |
newDatagram()
Creates a UDP datagram containing all the TFTP
data packet data in the proper format.
|
void |
setBlockNumber(int blockNumber)
Sets the block number of the data packet.
|
void |
setData(byte[] data,
int offset,
int length)
Sets the data for the data packet.
|
java.lang.String |
toString()
For debugging
|
getAddress, getPort, getType, newTFTPPacket, setAddress, setPort
public static final int MAX_DATA_LENGTH
public static final int MIN_DATA_LENGTH
int _blockNumber
int _length
int _offset
byte[] _data
public TFTPDataPacket(java.net.InetAddress destination, int port, int blockNumber, byte[] data, int offset, int length)
destination
- The host to which the packet is going to be sent.port
- The port to which the packet is going to be sent.blockNumber
- The block number of the data.data
- The byte array containing the data.offset
- The offset into the array where the data starts.length
- The length of the data.public TFTPDataPacket(java.net.InetAddress destination, int port, int blockNumber, byte[] data)
TFTPDataPacket(java.net.DatagramPacket datagram) throws TFTPPacketException
datagram
- The datagram containing the received data.TFTPPacketException
- If the datagram isn't a valid TFTP
data packet.java.net.DatagramPacket _newDatagram(java.net.DatagramPacket datagram, byte[] data)
_newDatagram
in class TFTPPacket
datagram
- The datagram to create.data
- The buffer to store the packet and to use in the datagram.public java.net.DatagramPacket newDatagram()
TFTPClient
class.
Under normal circumstances, you should not have a need to call this
method.newDatagram
in class TFTPPacket
public int getBlockNumber()
public void setBlockNumber(int blockNumber)
blockNumber
- the number to setpublic void setData(byte[] data, int offset, int length)
data
- The byte array containing the data.offset
- The offset into the array where the data starts.length
- The length of the data.public int getDataLength()
public int getDataOffset()
public byte[] getData()
public java.lang.String toString()
toString
in class TFTPPacket