Class GenericPacketInputStream

  • All Implemented Interfaces:
    Closeable, AutoCloseable, PacketInputStream

    public class GenericPacketInputStream
    extends Object
    implements PacketInputStream
    Generic packet reader that splits the stream into packets based on the length of the packet

    Inspired from Netty's LengthFieldBasedFrameDecoder

    The following configuration variables are used

    • maxPacketLength - the maximum packet length; if a packet with the length greater than this would be received, the input stream is closed and an exception is raised. The length of the packet considered here is the number of data bytes read from the stream - that is including the length field itself and the bytes to strip at the beginning if set (see below)
    • lengthFieldOffset - the offset in the packet where the length is read from
    • lengthFieldLength - the size in bytes of the length field
    • lengthAdjustment - after reading the length from the configured offset, this variable is added to it to determine the real length
    • initialBytesToStrip - after reading the packet, strip this number of bytes from the beginning

    All the above configuration parameters have to be set, otherwise a ConfigurationException will be thrown.