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

Packages that use I2PSocket
net.i2p.BOB: BOB, the Basic Open Bridge, allows TCP applications to talk over I2P.
net.i2p.client.streaming: Implements a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
net.i2p.i2ptunnel
net.i2p.i2ptunnel.socks
net.i2p.sam
org.klomp.snark

Uses of I2PSocket in net.i2p.BOB

Constructors in net.i2p.BOB with parameters of type I2PSocket
`I2PtoTCP(I2PSocket I2Psock, NamedDB info, NamedDB database, AtomicBoolean lives)` Constructor

Uses of I2PSocket in net.i2p.client.streaming

Classes in net.i2p.client.streaming that implement I2PSocket
`(package private) class` `I2PSocketFull` Bridge between the full streaming lib and the I2PSocket API
`(package private) class` `I2PSocketImpl` Deprecated. use I2PSocketFull

Methods in net.i2p.client.streaming that return I2PSocket
`I2PSocket` `I2PServerSocketFull.accept()` Warning, unlike regular ServerSocket, may return null
`I2PSocket` `I2PServerSocket.accept()` Waits for the next socket connecting.
`I2PSocket` `I2PServerSocketImpl.accept()` Deprecated. Waits for the next socket connecting.
`I2PSocket` `I2PSocketManagerFull.connect(Destination peer)` Create a new connected socket.
`I2PSocket` `I2PSocketManager.connect(Destination peer)` Create a new connected socket (block until the socket is created)
`I2PSocket` `I2PSocketManagerImpl.connect(Destination peer)` Deprecated. Create a new connected socket (block until the socket is created)
`I2PSocket` `I2PSocketManagerFull.connect(Destination peer, I2PSocketOptions options)` Create a new connected socket.
`I2PSocket` `I2PSocketManager.connect(Destination peer, I2PSocketOptions options)` Create a new connected socket (block until the socket is created)
`I2PSocket` `I2PSocketManagerImpl.connect(Destination peer, I2PSocketOptions options)` Deprecated. Create a new connected socket (block until the socket is created)
`I2PSocket` `I2PSocketManagerFull.receiveSocket()`

Methods in net.i2p.client.streaming that return types with arguments of type I2PSocket
`Set<I2PSocket>` `I2PSocketManagerFull.listSockets()` Retrieve a set of currently connected I2PSockets, either initiated locally or remotely.
`Set<I2PSocket>` `I2PSocketManager.listSockets()` Retrieve a set of currently connected I2PSockets, either initiated locally or remotely.
`Set<I2PSocket>` `I2PSocketManagerImpl.listSockets()` Deprecated. Retrieve a set of currently connected I2PSockets, either initiated locally or remotely.

Methods in net.i2p.client.streaming with parameters of type I2PSocket
`boolean` `I2PServerSocketImpl.addWaitForAccept(I2PSocket s, long timeoutMs)` Deprecated. Make the socket available and wait until the client app accepts it, or until the given timeout elapses.

Constructors in net.i2p.client.streaming with parameters of type I2PSocket
`StandardSocket(I2PSocket socket)`

Uses of I2PSocket in net.i2p.i2ptunnel

Methods in net.i2p.i2ptunnel that return I2PSocket
`I2PSocket` `I2PTunnelClientBase.createI2PSocket(Destination dest)` Create a new I2PSocket towards to the specified destination, adding it to the list of connections actually managed by this tunnel.
`I2PSocket` `I2PTunnelClientBase.createI2PSocket(Destination dest, I2PSocketOptions opt)` Create a new I2PSocket towards to the specified destination, adding it to the list of connections actually managed by this tunnel.

Methods in net.i2p.i2ptunnel with parameters of type I2PSocket
`protected void` `I2PTunnelServer.blockingHandle(I2PSocket socket)`
`protected void` `I2PTunnelIRCServer.blockingHandle(I2PSocket socket)`
`protected void` `I2PTunnelHTTPServer.blockingHandle(I2PSocket socket)` Called by the thread pool of I2PSocket handlers
`protected void` `I2PTunnelRunner.close(OutputStream out, InputStream in, OutputStream i2pout, InputStream i2pin, Socket s, I2PSocket i2ps, Thread t1, Thread t2)`
`protected void` `I2PTunnelHTTPClientRunner.close(OutputStream out, InputStream in, OutputStream i2pout, InputStream i2pin, Socket s, I2PSocket i2ps, Thread t1, Thread t2)`

Constructors in net.i2p.i2ptunnel with parameters of type I2PSocket
`I2PTunnelHTTPClientRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, List sockList, Runnable onTimeout)`
`I2PTunnelIRCClient.IrcInboundFilter(Socket _local, I2PSocket _remote, StringBuffer pong, Log log)`
`I2PTunnelIRCClient.IrcOutboundFilter(Socket _local, I2PSocket _remote, StringBuffer pong, Log log)`
`I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List sockList)`
`I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List sockList, Runnable onTimeout)`
`I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, List sockList)`
`I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, List sockList, Runnable onTimeout)`

Uses of I2PSocket in net.i2p.i2ptunnel.socks

Methods in net.i2p.i2ptunnel.socks that return I2PSocket
`I2PSocket` `SOCKS4aServer.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.
`abstract I2PSocket` `SOCKSServer.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.
`I2PSocket` `SOCKS5Server.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.

Uses of I2PSocket in net.i2p.sam

Fields in net.i2p.sam declared as I2PSocket
`protected I2PSocket` `SAMStreamSession.SAMStreamSessionSocketReader.i2pSocket`

Methods in net.i2p.sam with parameters of type I2PSocket
`protected int` `SAMStreamSession.createSocketHandler(I2PSocket s, int id)` Create a new SAM STREAM session socket handler, detaching its thread.
`protected SAMStreamSession.SAMStreamSessionSocketReader` `SAMStreamSession.newSAMStreamSessionSocketReader(I2PSocket s, int id)`
`protected SAMStreamSession.SAMStreamSessionSocketReader` `SAMv2StreamSession.newSAMStreamSessionSocketReader(I2PSocket s, int id)`
`protected SAMStreamSession.StreamSender` `SAMStreamSession.newStreamSender(I2PSocket s, int id)`
`protected SAMStreamSession.StreamSender` `SAMv2StreamSession.newStreamSender(I2PSocket s, int id)` Lets us push data through the stream without blocking, (even after exceeding the I2PSocket's buffer)

Constructors in net.i2p.sam with parameters of type I2PSocket
`SAMStreamSession.SAMStreamSessionSocketReader(I2PSocket s, int id)` Create a new SAM STREAM session socket reader
`SAMStreamSession.SAMv1StreamSessionSocketReader(I2PSocket s, int id)` Create a new SAM STREAM session socket reader
`SAMStreamSession.StreamSender(I2PSocket s, int id)`
`SAMStreamSession.v1StreamSender(I2PSocket s, int id)`
`SAMv2StreamSession.SAMv2StreamSessionSocketReader(I2PSocket s, int id)` Create a new SAM STREAM session socket reader
`SAMv2StreamSession.v2StreamSender(I2PSocket s, int id)`

Uses of I2PSocket in org.klomp.snark

Methods in org.klomp.snark that return I2PSocket
`(package private) I2PSocket` `I2PSnarkUtil.connect(PeerID peer)` connect to the given destination

Methods in org.klomp.snark with parameters of type I2PSocket
`void` `PeerAcceptor.connection(I2PSocket socket, InputStream in, OutputStream out)`

Constructors in org.klomp.snark with parameters of type I2PSocket
`Peer(I2PSocket sock, InputStream in, OutputStream out, byte[] my_id, byte[] infohash, MetaInfo metainfo)` Incoming connection.