## 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
`protected int` `addressType`
`protected String` `connHostName`
`protected int` `connPort`

Constructor Summary
`SOCKSServer()`

Method Summary
`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`