## Uses of Interface
net.i2p.client.streaming.I2PSocketManager

- Packages that use I2PSocketManager
  Package | Description
  --- | ---
  net.i2p.client.streaming | API, interfaces, and factory for a TCP-like (reliable, authenticated, in order) set of sockets for communicating over IP-like (unreliable, unauthenticated, unordered) I2P messages.
  net.i2p.client.streaming.impl | Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
  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.localServer | Lightweight HTTP server for serving static resources (CSS, images) used by I2PTunnel HTTP client proxy error pages.
  net.i2p.sam | The SAM (Simple Anonymous Messaging) client API.
  org.klomp.snark | I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced to add a web UI, DHT support, and other features.

- - ### Uses of I2PSocketManager in net.i2p.client.streaming

    Fields in net.i2p.client.streaming declared as I2PSocketManager
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PSocketManager` | AcceptingChannel.`_socketManager` Socket manager for this channel

    Methods in net.i2p.client.streaming that return I2PSocketManager
    Modifier and Type | Method and Description
    --- | ---
    `static I2PSocketManager` | I2PSocketManagerFactory.`createDisconnectedManager(InputStream myPrivateKeyStream, String i2cpHost, int i2cpPort, Properties opts)` Create a disconnected socket manager using the destination loaded from the given private key stream, or null for a transient destination.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createDisconnectedManager(InputStream myPrivateKeyStream, String i2cpHost, int i2cpPort, Properties opts, IncomingConnectionFilter filter)` Create a disconnected socket manager using the destination loaded from the given private key stream, or null for a transient destination.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager()` Create a socket manager using a brand new destination connected to the I2CP router on the local machine on the default port (7654).
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(IncomingConnectionFilter filter)` Create a socket manager using a brand new destination connected to the I2CP router on the local machine on the default port (7654) with the specified incoming connection filter.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(InputStream myPrivateKeyStream)` Create a socket manager using the destination loaded from the given private key stream and connected to the default I2CP host and port.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(InputStream myPrivateKeyStream, IncomingConnectionFilter filter)` Create a socket manager using the destination loaded from the given private key stream and connected to the default I2CP host and port with the specified connection filter Blocks for a long time while the router builds tunnels.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(InputStream myPrivateKeyStream, Properties opts)` Create a socket manager using the destination loaded from the given private key stream and connected to the default I2CP host and port.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(InputStream myPrivateKeyStream, Properties opts, IncomingConnectionFilter filter)` Create a socket manager using the destination loaded from the given private key stream and connected to the default I2CP host and port.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(InputStream myPrivateKeyStream, String i2cpHost, int i2cpPort, Properties opts)` Create a socket manager using the destination loaded from the given private key stream and connected to the I2CP router on the specified machine on the given port.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(InputStream myPrivateKeyStream, String i2cpHost, int i2cpPort, Properties opts, IncomingConnectionFilter filter)` Create a socket manager using the destination loaded from the given private key stream and connected to the I2CP router on the specified machine on the given port.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(Properties opts)` Create a socket manager using a brand new destination connected to the I2CP router on the local machine on the default port (7654).
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(Properties opts, IncomingConnectionFilter filter)` Create a socket manager using a brand new destination connected to the I2CP router on the local machine on the default port (7654).
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(String host, int port)` Create a socket manager using a brand new destination connected to the I2CP router on the specified host and port.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(String host, int port, IncomingConnectionFilter filter)` Create a socket manager using a brand new destination connected to the I2CP router on the specified host and port with the specified connection filter Blocks for a long time while the router builds tunnels.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(String i2cpHost, int i2cpPort, Properties opts)` Create a socket manager using a brand new destination connected to the I2CP router on the given machine reachable through the given port.
    `static I2PSocketManager` | I2PSocketManagerFactory.`createManager(String i2cpHost, int i2cpPort, Properties opts, IncomingConnectionFilter filter)` Create a socket manager using a brand new destination connected to the I2CP router on the given machine reachable through the given port with the specified connection filter Blocks for a long time while the router builds tunnels.
    `I2PSocketManager` | I2PServerSocket.`getManager()` Access the manager which is coordinating the server socket

    Constructors in net.i2p.client.streaming with parameters of type I2PSocketManager
    Constructor and Description
    `AcceptingChannel(I2PSocketManager manager)` Create a new accepting channel.
    `I2PSocketEepGet(I2PAppContext ctx, I2PSocketManager mgr, int numRetries, long minSize, long maxSize, String outputFile, OutputStream outputStream, String url)`
    `I2PSocketEepGet(I2PAppContext ctx, I2PSocketManager mgr, int numRetries, String outputFile, String url)`

  - ### Uses of I2PSocketManager in net.i2p.client.streaming.impl

    Classes in net.i2p.client.streaming.impl that implement I2PSocketManager
    Modifier and Type | Class and Description
    --- | ---
    `class` | `I2PSocketManagerFull` Centralize the coordination and multiplexing of the local client's streaming.

    Methods in net.i2p.client.streaming.impl that return I2PSocketManager
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocketManager` | I2PServerSocketFull.`getManager()`

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

    Fields in net.i2p.i2ptunnel declared as I2PSocketManager
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PSocketManager` | I2PTunnelServer.`sockMgr`
    `protected I2PSocketManager` | I2PTunnelClientBase.`sockMgr`

    Methods in net.i2p.i2ptunnel that return I2PSocketManager
    Modifier and Type | Method and Description
    --- | ---
    `protected I2PSocketManager` | I2PTunnelClientBase.`buildSocketManager()` For NON-SHARED clients (ownDest = true).
    `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 I2PSocketManager` | I2PTunnelClientBase.`getSocketManager()` This is ONLY for shared clients.
    `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.

    Constructors in net.i2p.i2ptunnel with parameters of type I2PSocketManager
    Constructor and Description
    `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.
    `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.
    `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, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
    `I2PTunnelServer(InetAddress host, int port, I2PSocketManager sktMgr, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking

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

    Constructors in net.i2p.i2ptunnel.irc with parameters of type I2PSocketManager
    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 I2PSocketManager in net.i2p.i2ptunnel.localServer

    Methods in net.i2p.i2ptunnel.localServer with parameters of type I2PSocketManager
    Modifier and Type | Method and Description
    --- | ---
    `static void` | LocalHTTPServer.`serveLocalFile(I2PAppContext context, I2PSocketManager sockMgr, OutputStream out, String method, String targetRequest, String query, String proxyNonce, boolean allowGzip)` Very simple web server.

  - ### Uses of I2PSocketManager in net.i2p.sam

    Fields in net.i2p.sam declared as I2PSocketManager
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PSocketManager` | SAMStreamSession.`socketMgr`

    Constructors in net.i2p.sam with parameters of type I2PSocketManager
    Constructor and Description
    `SAMStreamSession(I2PSocketManager mgr, Properties props, SAMStreamReceiver recv, int listenport)` Create a new SAM STREAM session on an existing socket manager.
    `SAMv3StreamSession(String login, Properties props, SAMv3Handler handler, I2PSocketManager mgr, int listenPort)` Build a Stream Session on an existing I2P session registered with the given nickname Caller MUST call start().

  - ### Uses of I2PSocketManager in org.klomp.snark

    Methods in org.klomp.snark that return I2PSocketManager
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocketManager` | I2PSnarkUtil.`getSocketManager()` For FetchAndAdd