# Package net.i2p.sam

The SAM (Simple Anonymous Messaging) client API.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Handler | Something that can be stopped by the SAMBridge.
  SAMDatagramReceiver | Interface for sending raw data to a SAM client
  SAMMessageSess | Base interface for SAMMessageSession, which is the base for v1/v3 datagram and raw sessions.
  SAMRawReceiver | Interface for sending raw data to a SAM client
  SAMSecureSessionInterface | SAMSecureSessionInterface is used for implementing interactive authentication to SAM applications.
  SAMStreamReceiver | Interface for sending streaming data to a SAM client
  Session | A V3 session.

- Class Summary
  Class | Description
  --- | ---
  MasterSession | A session that does nothing, but implements interfaces for raw, datagram, and streaming for convenience.
  ReadLine | Modified from I2PTunnelHTTPServer Handles UTF-8.
  SAMBridge | SAM bridge implementation.
  SAMDatagramSession | SAM DATAGRAM session class.
  SAMHandler | Base class for SAM protocol handlers.
  SAMHandlerFactory | SAM handler factory class.
  SAMMessageSession | Base abstract class for SAM message-based sessions.
  SAMRawSession | SAM RAW session class.
  SAMSecureSession | This is the "default" implementation of the SAMSecureSession @interface that behaves exactly like SAM without interactive authentication.
  SAMStreamSession | SAM STREAM session class.
  SAMStreamSession.StreamSender | Lets us push data through the stream without blocking, (even after exceeding the I2PSocket's buffer)
  SAMUtils | Miscellaneous utility methods used by SAM protocol handlers.
  SAMv1Handler | Class able to handle a SAM version 1 client connections.
  SAMv2Handler | Class able to handle a SAM version 2 client connection.
  SAMv2StreamSession | SAMv2 STREAM session class.
  SAMv3DatagramServer | This is the thread listening on 127.0.0.1:7655 or as specified by sam.udp.host and sam.udp.port properties.
  SAMv3DatagramSession | SAM v3 datagram session implementation.
  SAMv3Handler | Class able to handle a SAM version 3 client connection.
  SAMv3RawSession | SAM v3 raw session implementation.
  SAMv3StreamSession | SAMv3 STREAM session class.
  SessionRecord | The values in the SessionsDB
  SessionsDB | basically a HashMap from String to SessionRecord
  SSLServerSocketChannel | Simple wrapper for a SSLServerSocket.
  SSLSocketChannel | Simple wrapper for a SSLSocket.
  SSLUtil | Utilities for SAM SSL server sockets.
  UTF8Reader | An unbuffered version of InputStreamReader.

- Exception Summary
  Exception | Description
  --- | ---
  SAMException | Exception thrown by SAM methods
  SAMInvalidDirectionException | Exception thrown by SAM methods when an application tries to create outgoing connections through a receive-only SAM session.
  SessionsDB.ExistingDestException | Exception thrown when attempting to create a session with an existing destination.
  SessionsDB.ExistingIdException | Exception thrown when attempting to create a session with an existing ID.

## Package net.i2p.sam Description

The SAM (Simple Anonymous Messaging) client API.

SAM provides a bridge between I2P applications and the I2P router, allowing applications written in any language to communicate over I2P without needing to implement the full I2P protocol. This package contains the SAM server implementation that handles client connections and protocol commands.

Key features:

- Protocol-agnostic communication bridge
- Support for streaming, datagram, and raw messaging
- Session management and client authentication
- Automatic destination generation and management