Package org.snmp4j.transport
The org.snmp4j.transport
classes are capable of sending and
receiving byte messages to and from a network using transport mapping specific
transport protocol. All SNMP4J transport mappings have to implement the
org.snmp4j.TransportMapping
interface. SNMP4J supports two
transport mappings for the transport protocols UDP and TCP:
-
The UDP transport mapping is the default SNMP transport mapping. It is
implemented by the
DefaultUdpTransportMapping
class. -
The TCP transport mapping is implemented by the
DefaultTcpTransportMapping
using thejava.nio
package.
Additional transport mappings can be easily added. It is sufficient to
implement the org.snmp4j.TransportMapping
interface and add
an instance of that class to the Snmp
(or MessageDispatcher
)
object. To be able to lookup a transport mapping by an Address
class via the TransportMappings
(as Snmp
does
for notification listeners), a transport mapping has to be registered
in a transport mapping registration file. The default file is
transports.properties
in the org.snmp4j.transport
package. To use a different file, set the system property
org.snmp4j.transportMappings
.
Connection-oriented transport mappings like TCP should implement
the ConnectionOrientedTransportMapping
interface to support
MessageLengthDecoder
and TransportStateListener
.
The following UML class diagram shows the classes of the
org.snmp4j.transport
package and their relationships
(relationships to other packages are not shown):
-
ClassDescriptionThe
AbstractConnectionOrientedTransportMapping
implements generic functions for a connection oriented transport mapping for server and client connections.AbstractServerSocket<A extends Address>TheAbstractServerSocket
interface provides methods to manage the sockets of a connection oriented transport mapping listening for incoming requests.AbstractSocketEntry<A extends Address>TheAbstractSocketEntry
extends theAbstractServerSocket
and implements a genericAddress
toSocketChannel
mapping to be used byTransportMapping
.AbstractTransportMapping<A extends Address>TheAbstractTransportMapping
provides an abstract implementation for the message dispatcher list and the maximum inbound message size.TheAbstractTransportServerThread
is aWorkerTask
that serves server connections using Java NIO forConnectionOrientedTransportMapping
s.ConnectionOrientedTransportMapping<A extends Address>Transport mappings for connection oriented transport protocols have to implement this interface.TheDefaultTcpTransportMapping
implements a TCP transport mapping with the Java 1.4 new IO API.TheDefaultUdpTransportMapping
implements a UDP transport mapping based on Java standard IO and using an internal thread for listening on the inbound socket.TheDTLSTM
implements the Datagram Transport Layer Security Transport Mapping (TLS-TM) as defined by RFC 5953 with the new IO API andSSLEngine
.DummyTransport<A extends IpAddress>TheDummyTransport
is a test TransportMapping for Command Generators which actually does not sent messages over the network.TheMessageLength
object contains information about the length of a message and the length of its header.TheMessageLengthDecoder
needs to be implemented for connection oriented transport mappings, because those transport mappings have no message boundaries.SocketTimeout<A extends Address>TheSocketTimeout
is aTimerTask
that provides means to detect when a socket is not used for predefined time and then close the socket and free its resources.TheTcpTransportMapping
is the abstract base class for TCP transport mappings.TheTLSTM
implements the Transport Layer Security Transport Mapping (TLS-TM) as defined by RFC 5953 with the new IO API andSSLEngine
.TheTransportListener
interface is implemented by objects that process incoming messages fromTransportMapping
s, for exampleMessageDispatcher
.TheTransportMappings
factory can be used to create a transport mapping for an address class.TheTransportStateEvent
describes a state change for a transport connection.TheTransportStateListener
interface can be implemented to monitor the connection state for connection oriented transport mappings.TheTransportType
defines the communication capabilities of aTransportMapping
regarding the communication initiation (thus its direction).TheUdpTransportMapping
is the abstract base class for UDP transport mappings.TheUnsupportedAddressClassException
indicates a message exception caused by unsupported address class.