net.i2p.i2ptunnel.socks

## Class SOCKSServer

- java.lang.Object
- - net.i2p.i2ptunnel.socks.SOCKSServer

- Direct Known Subclasses:
    SOCKS4aServer, SOCKS5Server

      public abstract class SOCKSServer
      extends Object

  Abstract base class used by all SOCKS servers.
  Author:
    human

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `addressType`
    `protected String` | `connHostName`
    `protected int` | `connPort`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SOCKSServer()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | `confirmConnection()` Confirm to the client that the connection has succeeded
    `abstract Socket` | `getClientSocket()` Get a socket that can be used to send/receive 8-bit clean data to/from the client.
    `abstract I2PSocket` | `getDestinationI2PSocket(I2PSOCKSTunnel t)` Get an I2PSocket that can be used to send/receive 8-bit clean data to/from the destination of the SOCKS connection.
    `protected abstract void` | `setupServer()` Perform server initialization (expecially regarding protected variables).

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

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

- - ### Field Detail

    - #### connHostName

          protected String connHostName

    - #### connPort

          protected int connPort

    - #### addressType

          protected int addressType

  - ### Constructor Detail

    - #### SOCKSServer

          public SOCKSServer()

  - ### Method Detail

    - #### setupServer

          protected abstract void setupServer()
                                       throws SOCKSException

      Perform server initialization (expecially regarding protected variables).
      Throws:
        `SOCKSException`

    - #### getClientSocket

          public abstract Socket getClientSocket()
                                          throws SOCKSException

      Get a socket that can be used to send/receive 8-bit clean data to/from the client.
      Returns:
        a Socket connected with the client
      Throws:
        `SOCKSException`

    - #### confirmConnection

          protected abstract void confirmConnection()
                                             throws SOCKSException

      Confirm to the client that the connection has succeeded
      Throws:
        `SOCKSException`

    - #### getDestinationI2PSocket

          public abstract I2PSocket getDestinationI2PSocket(I2PSOCKSTunnel t)
                                                     throws SOCKSException

      Get an I2PSocket that can be used to send/receive 8-bit clean data to/from the destination of the SOCKS connection.
      Returns:
        an I2PSocket connected with the destination
      Throws:
        `SOCKSException`