net.i2p.i2ptunnel

## Class I2PTunnelClient

- java.lang.Object
- - net.i2p.i2ptunnel.I2PTunnelTask
  - - net.i2p.i2ptunnel.I2PTunnelClientBase
    - - net.i2p.i2ptunnel.I2PTunnelClient

- All Implemented Interfaces:
    Runnable, EventDispatcher

      public class I2PTunnelClient
      extends I2PTunnelClientBase

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected List<Destination>` | `dests` list of Destination objects that we point at
    `protected long` | `readTimeout`

    - ### Fields inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase

      `_clientId, _context, _executor, _log, _ownDest, DEFAULT_CONNECT_TIMEOUT, dest, l, mySockets, sockLock, sockMgr`

    - ### Fields inherited from class net.i2p.i2ptunnel.I2PTunnelTask

      `open`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `I2PTunnelClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `clientConnectionRun(Socket s)` Manage a connection in a separate thread.
    `long` | `getReadTimeout()`
    `void` | `setReadTimeout(long ms)`

    - ### Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase

      `buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, close, closeSocket, createI2PSocket, createI2PSocket, getDefaultOptions, getDefaultOptions, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, manageConnection, run, startRunning, verifySocketManager`

    - ### Methods inherited from class net.i2p.i2ptunnel.I2PTunnelTask

      `attachEventDispatcher, detachEventDispatcher, disconnected, errorOccurred, getEventDispatcher, getEvents, getEventValue, getId, getTunnel, ignoreEvents, isOpen, notifyEvent, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString, unIgnoreEvents, waitEventValue`

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

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

- - ### Field Detail

    - #### dests

          protected List<Destination> dests

      list of Destination objects that we point at

    - #### readTimeout

          protected long readTimeout

  - ### Constructor Detail

    - #### I2PTunnelClient

          public I2PTunnelClient(int localPort,
                         String destinations,
                         Logging l,
                         boolean ownDest,
                         EventDispatcher notifyThis,
                         I2PTunnel tunnel,
                         String pkf)
                          throws IllegalArgumentException

      Parameters:
        `destinations` - comma delimited list of peers we target
      Throws:
        `IllegalArgumentException` - if the I2PTunnel does not contain valid config to contact the router

  - ### Method Detail

    - #### setReadTimeout

          public void setReadTimeout(long ms)

    - #### getReadTimeout

          public long getReadTimeout()

    - #### clientConnectionRun

          protected void clientConnectionRun(Socket s)

      Description copied from class: `I2PTunnelClientBase`
      Manage a connection in a separate thread. This only works if you do not override manageConnection()
      Specified by:
        `clientConnectionRun` in class `I2PTunnelClientBase`