# Uses of Package
net.i2p.client

- Packages that use net.i2p.client
  Package | Description
  --- | ---
  net.i2p.client | Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
  net.i2p.client.datagram | Provides a standard way for reading and writing messages transferred over I2P so that recipient has an authenticated mechanism to reply to it.
  net.i2p.client.impl | Internal implementation of the I2P client SDK, providing the client side of the I2CP protocol for applications communicating through I2P.
  net.i2p.client.naming | Naming service for resolving human-readable names to I2P destinations, providing a standard interface without JNDI complexity.
  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.data | These classes define the common data structures used by the various I2P protocols.
  net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  net.i2p.i2ptunnel.udp | Core API and interfaces used by UDP tunnel implementations.
  net.i2p.internal | Internal communication interfaces for router and client within same JVM, using queues instead of socket-based I2CP.
  net.i2p.router | The I2P router application handles I2P network communication.
  net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration.
  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.
  org.klomp.snark.dht | Distributed Hash Table (DHT) implementation for BitTorrent.

- Classes in net.i2p.client used by net.i2p.client
  Class and Description
  I2PClient Define the standard means of interacting with the I2P system An I2PClient contains no state, it is just a facility for creating private key files and generating sesssions from existing private key files.
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionException Thrown when there is a problem doing something on the session
  I2PSessionListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  I2PSessionMuxedListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  LookupCallback Deferred callback for IPSession.lookupNonblocking()
  LookupResult The return value of I2PSession.lookupDest2()
  SendMessageOptions Advanced options attached to a single outgoing I2CP message.
  SendMessageOptions.GzipOption Overrides i2cp.gzip session option and size threshold for this message only.
  SendMessageOptions.Reliability Reliability bits 9-10
  SendMessageStatusListener Asynchronously notify the client of the status of a sent message.

- Classes in net.i2p.client used by net.i2p.client.datagram
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).

- Classes in net.i2p.client used by net.i2p.client.impl
  Class and Description
  I2PClient Define the standard means of interacting with the I2P system An I2PClient contains no state, it is just a facility for creating private key files and generating sesssions from existing private key files.
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionException Thrown when there is a problem doing something on the session
  I2PSessionListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  I2PSessionMuxedListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  LookupCallback Deferred callback for IPSession.lookupNonblocking()
  LookupResult The return value of I2PSession.lookupDest2()
  SendMessageOptions Advanced options attached to a single outgoing I2CP message.
  SendMessageStatusListener Asynchronously notify the client of the status of a sent message.

- Classes in net.i2p.client used by net.i2p.client.naming
  Class and Description
  I2PSessionException Thrown when there is a problem doing something on the session

- Classes in net.i2p.client used by net.i2p.client.streaming
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionException Thrown when there is a problem doing something on the session

- Classes in net.i2p.client used by net.i2p.client.streaming.impl
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionException Thrown when there is a problem doing something on the session
  I2PSessionListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  I2PSessionMuxedListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  SendMessageStatusListener Asynchronously notify the client of the status of a sent message.

- Classes in net.i2p.client used by net.i2p.data
  Class and Description
  I2PClient Define the standard means of interacting with the I2P system An I2PClient contains no state, it is just a facility for creating private key files and generating sesssions from existing private key files.
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionException Thrown when there is a problem doing something on the session

- Classes in net.i2p.client used by net.i2p.i2ptunnel
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).

- Classes in net.i2p.client used by net.i2p.i2ptunnel.udp
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  I2PSessionMuxedListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.

- Classes in net.i2p.client used by net.i2p.internal
  Class and Description
  I2PSessionException Thrown when there is a problem doing something on the session

- Classes in net.i2p.client used by net.i2p.router
  Class and Description
  I2PSessionException Thrown when there is a problem doing something on the session

- Classes in net.i2p.client used by net.i2p.router.client
  Class and Description
  I2PSessionException Thrown when there is a problem doing something on the session

- Classes in net.i2p.client used by net.i2p.sam
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionException Thrown when there is a problem doing something on the session
  I2PSessionListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  I2PSessionMuxedListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.

- Classes in net.i2p.client used by org.klomp.snark
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  I2PSessionMuxedListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.

- Classes in net.i2p.client used by org.klomp.snark.dht
  Class and Description
  I2PSession Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
  I2PSessionListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  I2PSessionMuxedListener Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.