# Uses of Package
net.i2p.client.impl

- Packages that use net.i2p.client.impl
  Package | Description
  --- | ---
  net.i2p.client.impl | Internal implementation of the I2P client SDK, providing the client side of the I2CP protocol for applications communicating through I2P.

- Classes in net.i2p.client.impl used by net.i2p.client.impl
  Class and Description
  ClientWriterRunner Copied from net.i2p.router.client We need a single thread that writes so we don't have issues with the Piped Streams used in InternalSocket.
  HandlerImpl Base class for handling I2CP messages
  I2CPMessageHandler Define a way to handle a particular type of message
  I2CPMessageProducer Produce the various messages the session needs to send to the router.
  I2PClientMessageHandlerMap Contains a map of message handlers that a session will want to use
  I2PSessionImpl Implementation of an I2P session running over TCP.
  I2PSessionImpl.AvailabilityNotifier This notifies the client of payload messages.
  I2PSessionImpl.State Session state enumeration.
  I2PSessionImpl2 Thread safe implementation of an I2P session running over TCP.
  I2PSessionMuxedImpl I2PSession with protocol and ports Streaming lib has been modified to send I2PSession.PROTO_STREAMING but still receives all.
  MessageState Contains the state of a payload message being sent to a peer.
  RequestLeaseSetMessageHandler Handle I2CP RequestLeaseSetMessage from the router by granting all leases, using the specified expiration time for each lease.