Class DNSInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class DNSInputStream
    extends java.io.ByteArrayInputStream

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

    Version:
    $Id: $
    Author:
    Sowmya , OpenNMS , Sowmya , OpenNMS
    • Field Summary

      • Fields inherited from class java.io.ByteArrayInputStream

        buf, count, mark, pos
    • Constructor Summary

      Constructors 
      Constructor Description
      DNSInputStream​(byte[] data)
      Constructs a new input stream for decoding DNS records.
      DNSInputStream​(byte[] data, int off, int len)
      Constructs a DNSInputStream object from the byte array.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int readByte()
      Read a byte off the input stream.
      java.lang.String readDomainName()
      The readDomainName method is used to read an entire domain name from the stream.
      long readInt()
      Read an 'int' off the input stream.
      DNSAddressRR readRR()
      Reads the resource record from the input stream.
      int readShort()
      Read a 'short' off the input stream.
      java.lang.String readString()
      Read a 'string' off the input stream.
      • Methods inherited from class java.io.ByteArrayInputStream

        available, close, mark, markSupported, read, read, readAllBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.io.InputStream

        nullInputStream, read, readNBytes
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 java.io.IOException

        Read a byte off the input stream.

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

        public int readShort()
                      throws java.io.IOException

        Read a 'short' off the input stream.

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

        public long readInt()
                     throws java.io.IOException

        Read an 'int' off the input stream.

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

        public java.lang.String readString()
                                    throws java.io.IOException

        Read a 'string' off the input stream.

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

        public java.lang.String readDomainName()
                                        throws java.io.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:
        java.io.IOException - Thrown if an error occurs decoding the string from the stream.
        java.io.IOException - if any.
      • readRR

        public DNSAddressRR readRR()
                            throws java.io.IOException

        Reads the resource record from the input stream.

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