TFTPAckPacketpublic final class TFTPAckPacket extends TFTPPacket A final class derived from TFTPPacket definiing the TFTP Acknowledgement
packet type.
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
{@link org.apache.commons.net.tftp.TFTPClient} class
{@link org.apache.commons.net.tftp.TFTPClient#receiveFile receiveFile()}
and
{@link org.apache.commons.net.tftp.TFTPClient#sendFile sendFile()}
methods.
|
Fields Summary |
---|
int | _blockNumberThe block number being acknowledged by the packet. |
Constructors Summary |
---|
public TFTPAckPacket(InetAddress destination, int port, int blockNumber)Creates an acknowledgment packet to be sent to a host at a given port
acknowledging receipt of a block.
super(TFTPPacket.ACKNOWLEDGEMENT, destination, port);
_blockNumber = blockNumber;
| TFTPAckPacket(DatagramPacket datagram)Creates an acknowledgement packet based from a received
datagram. Assumes the datagram is at least length 4, else an
ArrayIndexOutOfBoundsException may be thrown.
super(TFTPPacket.ACKNOWLEDGEMENT, datagram.getAddress(),
datagram.getPort());
byte[] data;
data = datagram.getData();
if (getType() != data[1])
throw new TFTPPacketException("TFTP operator code does not match type.");
_blockNumber = (((data[2] & 0xff) << 8) | (data[3] & 0xff));
|
Methods Summary |
---|
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.
It takes a datagram as an argument, and a byte buffer in which
to store the raw datagram data. Inside the method, the data
is set as the datagram's data and the datagram returned.
data[0] = 0;
data[1] = (byte)_type;
data[2] = (byte)((_blockNumber & 0xffff) >> 8);
data[3] = (byte)(_blockNumber & 0xff);
datagram.setAddress(_address);
datagram.setPort(_port);
datagram.setData(data);
datagram.setLength(4);
return datagram;
| public int | getBlockNumber()Returns the block number of the acknowledgement.
return _blockNumber;
| public java.net.DatagramPacket | newDatagram()Creates a UDP datagram containing all the TFTP
acknowledgement packet data in the proper format.
This is a method exposed to the programmer in case he
wants to implement his own TFTP client instead of using
the {@link org.apache.commons.net.tftp.TFTPClient}
class. Under normal circumstances, you should not have a need to call this
method.
byte[] data;
data = new byte[4];
data[0] = 0;
data[1] = (byte)_type;
data[2] = (byte)((_blockNumber & 0xffff) >> 8);
data[3] = (byte)(_blockNumber & 0xff);
return new DatagramPacket(data, data.length, _address, _port);
| public void | setBlockNumber(int blockNumber)Sets the block number of the acknowledgement.
_blockNumber = blockNumber;
|
|