## Uses of Class
net.i2p.i2ptunnel.I2PTunnel

- Packages that use I2PTunnel
  Package | Description
  --- | ---
  net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  net.i2p.i2ptunnel.irc | IRC-specific tunnel enhancements including protocol filters and DCC (Direct Client-to-Client) connection handlers for IRC client tunnels.
  net.i2p.i2ptunnel.socks | SOCKS protocol tunnel implementation for I2P, supporting SOCKS 4, 4a, and 5.
  net.i2p.i2ptunnel.streamr | Special-purpose tunnels for streaming UDP clients and servers, optimized for audio and video streaming applications.
  net.i2p.i2ptunnel.udpTunnel | UDP tunnel implementation for I2PTunnel.

- - ### Uses of I2PTunnel in net.i2p.i2ptunnel

    Fields in net.i2p.i2ptunnel declared as I2PTunnel
    Modifier and Type | Field and Description
    --- | ---
    `I2PTunnel` | I2PTunnelTask.`tunnel`

    Methods in net.i2p.i2ptunnel that return I2PTunnel
    Modifier and Type | Method and Description
    --- | ---
    `I2PTunnel` | TunnelController.`getTunnel()` The I2PTunnel
    `I2PTunnel` | I2PTunnelTask.`getTunnel()`

    Methods in net.i2p.i2ptunnel with parameters of type I2PTunnel
    Modifier and Type | Method and Description
    --- | ---
    `protected static I2PSocketManager` | I2PTunnelClientBase.`buildSocketManager(I2PTunnel tunnel)` As of 0.9.20 this is fast, and does NOT connect the manager to the router.
    `protected static I2PSocketManager` | I2PTunnelClientBase.`buildSocketManager(I2PTunnel tunnel, String pkf)` As of 0.9.20 this is fast, and does NOT connect the manager to the router.
    `protected static I2PSocketManager` | I2PTunnelClientBase.`buildSocketManager(I2PTunnel tunnel, String pkf, Logging log)` As of 0.9.20 this is fast, and does NOT connect the manager to the router.
    `protected static I2PSocketManager` | I2PTunnelClientBase.`getSocketManager(I2PTunnel tunnel)` This is ONLY for shared clients.
    `protected static I2PSocketManager` | I2PTunnelClientBase.`getSocketManager(I2PTunnel tunnel, String pkf)` This is ONLY for shared clients.
    `void` | I2PTunnelServer.`optionsUpdated(I2PTunnel tunnel)` Update the I2PSocketManager.
    `void` | I2PTunnelClient.`optionsUpdated(I2PTunnel tunnel)` Update the dests then call super.
    `void` | I2PTunnelHTTPClientBase.`optionsUpdated(I2PTunnel tunnel)` Update the outproxy list then call super.
    `void` | I2PTunnelIRCClient.`optionsUpdated(I2PTunnel tunnel)` Update the dests then call super.
    `void` | I2PTunnelHTTPServer.`optionsUpdated(I2PTunnel tunnel)`
    `void` | I2PTunnelTask.`optionsUpdated(I2PTunnel tunnel)` Notify the task that I2PTunnel's options have been updated.
    `void` | I2PTunnelClientBase.`optionsUpdated(I2PTunnel tunnel)` Update the I2PSocketManager.
    `void` | I2PTunnelTask.`setTunnel(I2PTunnel pTunnel)` for apps that use multiple I2PTunnel instances

    Constructors in net.i2p.i2ptunnel with parameters of type I2PTunnel
    Constructor and Description
    `I2Ping(Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel)` tunnel.getOptions must contain "command".
    `I2PTunnelClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel)` The main constructor.
    `I2PTunnelClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel, String pkf)` Use this to build a client with a persistent private key.
    `I2PTunnelClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` This constructor is used to add a client to an existing socket manager.
    `I2PTunnelConnectClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelHTTPBidirProxy(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, File privkey, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a bidirectional HTTP server tunnel with a private key file.
    `I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, InputStream privData, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a bidirectional HTTP server tunnel with an input stream for the private key.
    `I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a bidirectional HTTP server tunnel.
    `I2PTunnelHTTPClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelHTTPClient(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
    `I2PTunnelHTTPClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel)`
    `I2PTunnelHTTPClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
    `I2PTunnelHTTPServer(InetAddress host, int port, File privkey, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelHTTPServer(InetAddress host, int port, InputStream privData, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelHTTPServer(InetAddress host, int port, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelIRCClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelIRCServer(InetAddress host, int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelServer(InetAddress host, int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking
    `I2PTunnelServer(InetAddress host, int port, I2PSocketManager sktMgr, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking
    `I2PTunnelServer(InetAddress host, int port, InputStream privData, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking
    `I2PTunnelServer(InetAddress host, int port, String privData, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking
    `I2PTunnelTask(String name, EventDispatcher notifyThis, I2PTunnel tunnel)`

  - ### Uses of I2PTunnel in net.i2p.i2ptunnel.irc

    Constructors in net.i2p.i2ptunnel.irc with parameters of type I2PTunnel
    Constructor and Description
    `DCCClientManager(I2PSocketManager sktMgr, Logging logging, EventDispatcher dispatch, I2PTunnel tunnel)` Create a new manager for DCC client tunnels.
    `I2PTunnelDCCClient(String dest, int localPort, int remotePort, Logging l, I2PSocketManager sktMgr, EventDispatcher notifyThis, I2PTunnel tunnel, long clientId)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelDCCServer(I2PSocketManager sktMgr, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` There's no support for unsolicited incoming I2P connections, so there's no server host or port parameters.

  - ### Uses of I2PTunnel in net.i2p.i2ptunnel.socks

    Methods in net.i2p.i2ptunnel.socks with parameters of type I2PTunnel
    Modifier and Type | Method and Description
    --- | ---
    `void` | I2PSOCKSTunnel.`optionsUpdated(I2PTunnel tunnel)` Update the outproxy list then call super.

    Constructors in net.i2p.i2ptunnel.socks with parameters of type I2PTunnel
    Constructor and Description
    `I2PSOCKSIRCTunnel(int localPort, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`
    `I2PSOCKSTunnel(int localPort, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `SOCKSUDPTunnel(I2PTunnel tunnel)` Set up a tunnel with no UDP side yet.

  - ### Uses of I2PTunnel in net.i2p.i2ptunnel.streamr

    Constructors in net.i2p.i2ptunnel.streamr with parameters of type I2PTunnel
    Constructor and Description
    `StreamrConsumer(InetAddress host, int port, String destination, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a Streamr consumer that receives data from I2P and forwards it to a UDP destination.
    `StreamrProducer(int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a Streamr producer that receives UDP data and forwards it through I2P.

  - ### Uses of I2PTunnel in net.i2p.i2ptunnel.udpTunnel

    Constructors in net.i2p.i2ptunnel.udpTunnel with parameters of type I2PTunnel
    Constructor and Description
    `I2PTunnelUDPClientBase(String destination, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelUDPServerBase(File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`