## Uses of Interface
net.i2p.client.I2PSessionListener

- Packages that use I2PSessionListener
  Package | Description
  --- | ---
  net.i2p.client | Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
  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.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.udp | Core API and interfaces used by UDP tunnel implementations.
  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.

- - ### Uses of I2PSessionListener in net.i2p.client

    Subinterfaces of I2PSessionListener in net.i2p.client
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `I2PSessionMuxedListener` Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.

    Methods in net.i2p.client with parameters of type I2PSessionListener
    Modifier and Type | Method and Description
    --- | ---
    `void` | I2PSession.`addSessionListener(I2PSessionListener lsnr, int proto, int port)` Listen on specified protocol and port.
    `void` | I2PSession.`setSessionListener(I2PSessionListener lsnr)` Instruct the I2PSession where it should send event notifications WARNING: It is recommended that you use a method that specifies the protocol and ports.

  - ### Uses of I2PSessionListener in net.i2p.client.impl

    Classes in net.i2p.client.impl that implement I2PSessionListener
    Modifier and Type | Class and Description
    --- | ---
    `class` | `I2PSessionDemultiplexer` Implement multiplexing with a 1-byte 'protocol' and a two-byte 'port'.

    Fields in net.i2p.client.impl declared as I2PSessionListener
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PSessionListener` | I2PSessionImpl.`_sessionListener` who we send events to

    Methods in net.i2p.client.impl with parameters of type I2PSessionListener
    Modifier and Type | Method and Description
    --- | ---
    `void` | I2PSessionDemultiplexer.`addListener(I2PSessionListener l, int proto, int port)` For those that don't need to hear about the protocol and ports in messageAvailable() (Streaming lib)
    `void` | I2PSessionImpl2.`addSessionListener(I2PSessionListener lsnr, int proto, int port)`
    `void` | I2PSessionMuxedImpl.`addSessionListener(I2PSessionListener lsnr, int proto, int port)` Listen on specified protocol and port.
    `void` | I2PSessionImpl.`setSessionListener(I2PSessionListener lsnr)` configure the listener
    `void` | I2PSessionMuxedImpl.`setSessionListener(I2PSessionListener lsnr)` listen on all protocols and ports

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

    Classes in net.i2p.client.streaming.impl that implement I2PSessionListener
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `MessageHandler` Receive raw information from the I2PSession and turn it into Packets, if we can.

  - ### Uses of I2PSessionListener in net.i2p.i2ptunnel.udp

    Classes in net.i2p.i2ptunnel.udp that implement I2PSessionListener
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `I2PSource.Listener`

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

    Classes in net.i2p.sam that implement I2PSessionListener
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `MasterSession` A session that does nothing, but implements interfaces for raw, datagram, and streaming for convenience.

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

    Classes in org.klomp.snark that implement I2PSessionListener
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `UDPTrackerClient` One of these for all trackers and info hashes.

  - ### Uses of I2PSessionListener in org.klomp.snark.dht

    Classes in org.klomp.snark.dht that implement I2PSessionListener
    Modifier and Type | Class and Description
    --- | ---
    `class` | `KRPC` Kademlia Remote Procedure Call implementation for BitTorrent DHT (BEP 5) adapted for I2P.