package net.i2p.sam
The SAM bridge: a simple text protocol server letting applications in any language use I2P streaming and datagram sessions without implementing the Invisible Internet Client Protocol (I2CP). Started from clients.config as sam.jar.
See also: SAM specification.
- ClassDescriptionSomething that can be stopped by the SAMBridge.The primary (mux) session for a SAMv3 client, sharing a single I2P destination across multiple protocol subsessions (STREAM, DATAGRAM, RAW).Modified from I2PTunnelHTTPServer Handles UTF-8.Thrown when a client line exceeds the limit.SAM bridge — listens on TCP, dispatches each client to a
SAMHandlerFactoryhandler viaSAMHandlerPool, and tracks sessions inSessionsDB./// end ClientApp helpersParsed command-line options for the SAM bridge.Interface for sending datagram data to a SAM client.SAM DATAGRAM session class.Exception thrown by SAM methods.Base class for SAM protocol handlers.SAM handler factory class.Shared NIO selector-based handler pool for SAM v3 control connections.Per-connection context tracked by the pool.Thread factory for worker threads with sequential numbering.Exception thrown by SAM methods when an application tries to create outgoing connections through a receive-only SAM session.Base for datagram/raw sessions (v1/v3) and also SAMStreamSession.Base abstract class for SAM message-based sessions.Interface for sending raw data to a SAM client.SAM RAW session class.This is the "default" implementation of the SAMSecureSession @interface that behaves exactly like SAM without interactive authentication.SAMSecureSessionInterface is used for implementing interactive authentication to SAM applications.Interface for sending streaming data to a SAM client.SAM STREAM session — BOTH/CREATE/RECEIVE modes over an I2PSocketManager.Reads bytes off one tunnel socket and pushes them to the SAM client.Lets us push data through the stream without blocking, (even after exceeding the I2PSocket's buffer).Protocol helpers for SAM: destination/key parsing, naming lookups, SAM parameter parsing, and random destination generation.Class able to handle a SAM version 1 client connections.SAM version 2 handler.SAMv2 STREAM session class.This is the thread listening on 127.0.0.1:7655 or as specified bysam.udp.hostandsam.udp.portproperties.Thread handling one received datagram.SAM v3 datagram session implementation.Class able to handle a SAM version 3 client connection.SAM v3 raw session implementation.SAMv3 STREAM session class.Bidirectional byte copier between a local socket and an I2P socket.A V3 session.A record of a SAM session stored in theSessionsDB.A database of SAM sessions, mapping nicknames toSessionRecords.Exception thrown when attempting to create a session with an existing destination.Exception thrown when attempting to create a session with an existing ID.Simple wrapper for a SSLServerSocket.Simple wrapper for a SSLSocket.Utilities for SAM SSL server sockets.An unbuffered version of InputStreamReader.