public abstract class TFTPPacket
extends java.lang.Object
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.
TFTPPacketException
,
TFTP
Modifier and Type | Field and Description |
---|---|
(package private) java.net.InetAddress |
_address
The host the packet is going to be sent or where it came from.
|
(package private) int |
_port
The port the packet came from or is going to.
|
(package private) int |
_type
The type of packet.
|
static int |
ACKNOWLEDGEMENT
This is the actual TFTP spec
identifier and is equal to 4.
|
static int |
DATA
This is the actual TFTP spec
identifier and is equal to 3.
|
static int |
ERROR
This is the actual TFTP spec
identifier and is equal to 5.
|
(package private) static int |
MIN_PACKET_SIZE
The minimum size of a packet.
|
static int |
READ_REQUEST
This is the actual TFTP spec
identifier and is equal to 1.
|
static int |
SEGMENT_SIZE
The TFTP data packet maximum segment size in bytes.
|
static int |
WRITE_REQUEST
This is the actual TFTP spec
identifier and is equal to 2.
|
Constructor and Description |
---|
TFTPPacket(int type,
java.net.InetAddress address,
int port)
This constructor is not visible outside of the package.
|
Modifier and Type | Method and Description |
---|---|
(package private) abstract java.net.DatagramPacket |
_newDatagram(java.net.DatagramPacket datagram,
byte[] data)
This is an abstract method only available within the package for
implementing efficient datagram transport by elminating buffering.
|
java.net.InetAddress |
getAddress()
Returns the address of the host where the packet is going to be sent
or where it came from.
|
int |
getPort()
Returns the port where the packet is going to be sent
or where it came from.
|
int |
getType()
Returns the type of the packet.
|
abstract java.net.DatagramPacket |
newDatagram()
Creates a UDP datagram containing all the TFTP packet
data in the proper format.
|
static TFTPPacket |
newTFTPPacket(java.net.DatagramPacket datagram)
When you receive a datagram that you expect to be a TFTP packet, you use
this factory method to create the proper TFTPPacket object
encapsulating the data contained in that datagram.
|
void |
setAddress(java.net.InetAddress address)
Sets the host address where the packet is going to be sent.
|
void |
setPort(int port)
Sets the port where the packet is going to be sent.
|
java.lang.String |
toString()
For debugging
|
static final int MIN_PACKET_SIZE
public static final int READ_REQUEST
getType()
indicating a read request packet.public static final int WRITE_REQUEST
getType()
indicating a write request packet.public static final int DATA
getType()
indicating a data packet.public static final int ACKNOWLEDGEMENT
getType()
indicating an acknowledgement packet.public static final int ERROR
getType()
indicating an error packet.public static final int SEGMENT_SIZE
TFTP
class methods to implement their own TFTP servers or clients.int _type
int _port
java.net.InetAddress _address
TFTPPacket(int type, java.net.InetAddress address, int port)
type
- The type of the packet.address
- The host the packet came from or is going to be sent.port
- The port the packet came from or is going to be sent.public static final TFTPPacket newTFTPPacket(java.net.DatagramPacket datagram) throws TFTPPacketException
datagram
- The datagram containing a TFTP packet.TFTPPacketException
- If the datagram does not contain a valid
TFTP packet.abstract java.net.DatagramPacket _newDatagram(java.net.DatagramPacket datagram, byte[] data)
datagram
- The datagram to create.data
- The buffer to store the packet and to use in the datagram.public abstract java.net.DatagramPacket newDatagram()
TFTPClient
class.
Under normal circumstances, you should not have a need to call this
method.public final int getType()
public final java.net.InetAddress getAddress()
public final int getPort()
public final void setPort(int port)
port
- the port to setpublic final void setAddress(java.net.InetAddress address)
address
- the address to setpublic java.lang.String toString()
toString
in class java.lang.Object