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

### Constructor Summary

Constructors
Constructor and Description
`SOCKSServer()`

### Method Summary

Methods
`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`