net.i2p.client.streaming

## Interface I2PServerSocket

- All Known Implementing Classes:
    I2PServerSocketFull

      public interface I2PServerSocket

  Streaming server socket returned by `I2PSocketManager.getServerSocket()`. Defines how to listen for streaming peer connections.

  Note that this is not a standard Java `ServerSocket`, if you need one of those, use `I2PSocketManager.getStandardServerSocket()` instead.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocket` | `accept()` Waits for the next socket connecting.
    `void` | `close()` Closes the socket.
    `I2PSocketManager` | `getManager()` Access the manager which is coordinating the server socket
    `long` | `getSoTimeout()` Get Sock Option accept timeout
    `void` | `setSoTimeout(long x)` Set Sock Option accept timeout

- - ### Method Detail

    - #### accept

          I2PSocket accept()
                    throws I2PException,
                           ConnectException,
                           SocketTimeoutException

      Waits for the next socket connecting. If a remote user tried to make a connection and the local application wasn't .accept()ing new connections, they should get refused (if .accept() doesnt occur in some small period). Warning - unlike regular ServerSocket, may return null (through 0.9.16 only).
      Returns:
        a connected I2PSocket OR NULL through 0.9.16; never null as of 0.9.17
      Throws:
        `I2PException` - if there is a problem with reading a new socket from the data available (e.g. the I2PSession is closed); as of 0.9.61, this may be an I2PSessionException which extends I2PException
        `RouterRestartException` - (extends I2PException) if the router is apparently restarting, since 0.9.34
        `ConnectException` - if the I2PServerSocket is closed, or if interrupted. Not actually thrown through 0.9.16; thrown as of 0.9.17
        `SocketTimeoutException` - if a timeout was previously set with setSoTimeout and the timeout has been reached.

    - #### close

          void close()
              throws I2PException

      Closes the socket.
      Throws:
        `I2PException`

    - #### getManager

          I2PSocketManager getManager()

      Access the manager which is coordinating the server socket
      Returns:
        I2PSocketManager

    - #### getSoTimeout

          long getSoTimeout()

      Get Sock Option accept timeout
      Returns:
        timeout in ms

    - #### setSoTimeout

          void setSoTimeout(long x)

      Set Sock Option accept timeout
      Parameters:
        `x` - timeout in ms