Class TFTPRequestPacket

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String fileName
      The file name of the request.
      private int mode
      The transfer mode of the request.
      private static byte[][] modeBytes
      A null terminated byte array representation of the ASCII names of the transfer mode constants.
      (package private) static java.lang.String[] modeStrings
      An array containing the string names of the transfer modes and indexed by the transfer mode constants.
      private java.util.Map<java.lang.String,​java.lang.String> options
      The option values
    • Constructor Summary

      Constructors 
      Constructor Description
      TFTPRequestPacket​(int type, java.net.DatagramPacket datagram)
      Creates a request packet of a given type based on a received datagram.
      TFTPRequestPacket​(java.net.InetAddress destination, int port, int type, java.lang.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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getFilename()
      Gets the requested file name.
      int getMode()
      Gets the transfer mode of the request.
      java.util.Map<java.lang.String,​java.lang.String> getOptions()
      Gets the options extensions of the request as a map.
      private void handleOptions​(byte[] data, int fileLength, int modeLength)  
      java.net.DatagramPacket newDatagram()
      Creates a UDP datagram containing all the TFTP request packet data in the proper format.
      (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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • modeStrings

        static final java.lang.String[] modeStrings
        An array containing the string names of the transfer modes and indexed by the transfer mode constants.
      • modeBytes

        private static final byte[][] modeBytes
        A 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 mode
        The transfer mode of the request.
      • fileName

        private final java.lang.String fileName
        The file name of the request.
      • options

        private final java.util.Map<java.lang.String,​java.lang.String> options
        The option values
    • Constructor Detail

      • TFTPRequestPacket

        TFTPRequestPacket​(java.net.InetAddress destination,
                          int port,
                          int type,
                          java.lang.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,
                          java.net.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 Detail

      • getFilename

        public final java.lang.String getFilename()
        Gets the requested file name.
        Returns:
        The requested file name.
      • getMode

        public final int getMode()
        Gets the transfer mode of the request.
        Returns:
        The transfer mode of the request.
      • getOptions

        public final java.util.Map<java.lang.String,​java.lang.String> getOptions()
        Gets the options extensions of the request as a map. The keys are the option names and the values are the option values.
        Returns:
        The options extensions of the request as a map.
        Since:
        3.12.0
      • handleOptions

        private void handleOptions​(byte[] data,
                                   int fileLength,
                                   int modeLength)
      • newDatagram

        public final java.net.DatagramPacket 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 the TFTPClient class. Under normal circumstances, you should not have a need to call this method.
        Specified by:
        newDatagram in class TFTPPacket
        Returns:
        A UDP datagram containing the TFTP request packet.
      • newDatagram

        final 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.
        Specified by:
        newDatagram in class TFTPPacket
        Parameters:
        datagram - The datagram to create.
        data - The buffer to store the packet and to use in the datagram.
        Returns:
        The datagram argument.