Package org.apache.commons.net.tftp
Class TFTPRequestPacket
java.lang.Object
org.apache.commons.net.tftp.TFTPPacket
org.apache.commons.net.tftp.TFTPRequestPacket
- Direct Known Subclasses:
TFTPReadRequestPacket
,TFTPWriteRequestPacket
An abstract class derived from TFTPPacket definiing a TFTP Request
packet type. It is subclassed by the
TFTPReadRequestPacket
and
TFTPWriteRequestPacket
classes.
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final String
The file name of the request.private final int
The transfer mode of the request.private static final byte[][]
A null terminated byte array representation of the ascii names of the transfer mode constants.(package private) static final String[]
An array containing the string names of the transfer modes and indexed by the transfer mode constants.Fields inherited from class org.apache.commons.net.tftp.TFTPPacket
ACKNOWLEDGEMENT, address, DATA, ERROR, MIN_PACKET_SIZE, port, READ_REQUEST, SEGMENT_SIZE, type, WRITE_REQUEST
-
Constructor Summary
ConstructorsConstructorDescriptionTFTPRequestPacket
(int type, DatagramPacket datagram) Creates a request packet of a given type based on a received datagram.TFTPRequestPacket
(InetAddress destination, int port, int type, String fileName, int mode) Creates a request packet of a given type to be sent to a host at a given port with a file name and transfer mode request. -
Method Summary
Modifier and TypeMethodDescriptionfinal String
Returns the requested file name.final int
getMode()
Returns the transfer mode of the request.final DatagramPacket
Creates a UDP datagram containing all the TFTP request packet data in the proper format.(package private) final DatagramPacket
newDatagram
(DatagramPacket datagram, byte[] data) This is a method only available within the package for implementing efficient datagram transport by elminating buffering.Methods inherited from class org.apache.commons.net.tftp.TFTPPacket
getAddress, getPort, getType, newTFTPPacket, setAddress, setPort, toString
-
Field Details
-
modeStrings
An array containing the string names of the transfer modes and indexed by the transfer mode constants. -
modeBytes
private static final byte[][] modeBytesA null terminated byte array representation of the ascii names of the transfer mode constants. This is convenient for creating the TFTP request packets. -
mode
private final int modeThe transfer mode of the request. -
fileName
The file name of the request.
-
-
Constructor Details
-
TFTPRequestPacket
TFTPRequestPacket(InetAddress destination, int port, int type, String fileName, int mode) Creates a request packet of a given type to be sent to a host at a given port with a file name and transfer mode request.- Parameters:
destination
- The host to which the packet is going to be sent.port
- The port to which the packet is going to be sent.type
- The type of the request (either TFTPPacket.READ_REQUEST or TFTPPacket.WRITE_REQUEST).fileName
- The requested file name.mode
- The requested transfer mode. This should be on of the TFTP class MODE constants (e.g., TFTP.NETASCII_MODE).
-
TFTPRequestPacket
TFTPRequestPacket(int type, DatagramPacket datagram) throws TFTPPacketException Creates a request packet of a given type based on a received datagram. Assumes the datagram is at least length 4, else an ArrayIndexOutOfBoundsException may be thrown.- Parameters:
type
- The type of the request (either TFTPPacket.READ_REQUEST or TFTPPacket.WRITE_REQUEST).datagram
- The datagram containing the received request.- Throws:
TFTPPacketException
- If the datagram isn't a valid TFTP request packet of the appropriate type.
-
-
Method Details
-
newDatagram
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.- Specified by:
newDatagram
in classTFTPPacket
- Parameters:
datagram
- The datagram to create.data
- The buffer to store the packet and to use in the datagram.- Returns:
- The datagram argument.
-
newDatagram
Creates a UDP datagram containing all the TFTP request 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 theTFTPClient
class. Under normal circumstances, you should not have a need to call this method.- Specified by:
newDatagram
in classTFTPPacket
- Returns:
- A UDP datagram containing the TFTP request packet.
-
getMode
public final int getMode()Returns the transfer mode of the request.- Returns:
- The transfer mode of the request.
-
getFilename
Returns the requested file name.- Returns:
- The requested file name.
-