Class DNSInputStream

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public class DNSInputStream
    extends ByteArrayInputStream

    DNSInputStrean extends a ByteArrayInputStream and has methods to decode the data of a DNS response to an address request.

    • Constructor Detail

      • DNSInputStream

        public DNSInputStream​(byte[] data)

        Constructs a new input stream for decoding DNS records.

        Parameters:
        data - The array of data to pass to the base class.
      • DNSInputStream

        public DNSInputStream​(byte[] data,
                              int off,
                              int len)

        Constructs a DNSInputStream object from the byte array.

        Parameters:
        data - byte array containing the response data
        off - offset of the data in the byte array
        len - length of the byte array
    • Method Detail

      • readByte

        public int readByte()
                     throws IOException

        Read a byte off the input stream.

        Returns:
        The integer read.
        Throws:
        IOException - Thrown if the end-of-file is encountered trying to read the next byte.
        IOException - if any.
      • readShort

        public int readShort()
                      throws IOException

        Read a 'short' off the input stream.

        Returns:
        The short from the input stream.
        Throws:
        IOException - Thrown if the end-of-file is encountered trying to read the next short.
        IOException - if any.
      • readInt

        public long readInt()
                     throws IOException

        Read an 'int' off the input stream.

        Returns:
        The int from the input stream.
        Throws:
        IOException - Thrown if there is an error while read.
        IOException - if any.
      • readString

        public String readString()
                          throws IOException

        Read a 'string' off the input stream.

        Returns:
        the string from the input stream
        Throws:
        IOException - Thrown if there is an error while read
        IOException - if any.
      • readDomainName

        public String readDomainName()
                              throws IOException

        The readDomainName method is used to read an entire domain name from the stream. The string returned will be the concatentation of several substrings, each substring in the record is separated by a '.'(dot). For more information see the RFC for the distributed name service.

        Returns:
        The domain name string.
        Throws:
        IOException - Thrown if an error occurs decoding the string from the stream.
        IOException - if any.
      • readRR

        public DNSAddressRR readRR()
                            throws IOException

        Reads the resource record from the input stream.

        Returns:
        The DNSAddressRR that is in response to the address request.
        Throws:
        IOException - Thrown if data does not decode to a DNSAddressRRl.
        IOException - if any.