org.apache.commons.net.io

## Class SocketInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - org.apache.commons.net.io.SocketInputStream

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public class SocketInputStream
      extends FilterInputStream

  This class wraps an input stream, storing a reference to its originating socket. When the stream is closed, it will also close the socket immediately afterward. This class is useful for situations where you are dealing with a stream originating from a socket, but do not have a reference to the socket, and want to make sure it closes when the stream closes.
  See Also:
    `SocketOutputStream`

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterInputStream

      `in`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SocketInputStream(Socket socket, InputStream stream)` Creates a SocketInputStream instance wrapping an input stream and storing a reference to a socket that should be closed on closing the stream.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the stream and immediately afterward closes the referenced socket.

    - ### Methods inherited from class java.io.FilterInputStream

      `available, mark, markSupported, read, read, read, reset, skip`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SocketInputStream

          public SocketInputStream(Socket socket,
                                   InputStream stream)

      Creates a SocketInputStream instance wrapping an input stream and storing a reference to a socket that should be closed on closing the stream.
      Parameters:
        `socket` - The socket to close on closing the stream.
        `stream` - The input stream to wrap.

  - ### Method Detail

    - #### close

          public void close()
                     throws IOException

      Closes the stream and immediately afterward closes the referenced socket.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Overrides:
        `close` in class `FilterInputStream`
      Throws:
        `IOException` - If there is an error in closing the stream or socket.