net.i2p.sam

## Class SAMDatagramSession

- java.lang.Object
- - net.i2p.sam.SAMMessageSession
  - - net.i2p.sam.SAMDatagramSession

- Direct Known Subclasses:
    SAMv3DatagramSession

      public class SAMDatagramSession
      extends SAMMessageSession

  SAM DATAGRAM session class.
  Author:
    human

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.i2p.sam.SAMMessageSession

      `SAMMessageSession.SAMMessageSessionHandler`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DGRAM_SIZE_MAX`
    `protected SAMDatagramReceiver` | `recv`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SAMDatagramSession(InputStream destStream, Properties props, SAMDatagramReceiver recv)` Create a new SAM DATAGRAM session.
    `SAMDatagramSession(String dest, Properties props, SAMDatagramReceiver recv)` Create a new SAM DATAGRAM session.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `messageReceived(byte[] msg)` Handle a new received message
    `boolean` | `sendBytes(String dest, byte[] data)` Send bytes through a SAM DATAGRAM session.
    `protected void` | `shutDown()` Do whatever is needed to shutdown the SAM session

    - ### Methods inherited from class net.i2p.sam.SAMMessageSession

      `close, getDestination, getI2PSession, sendBytesThroughMessageSession`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DGRAM_SIZE_MAX

          public static int DGRAM_SIZE_MAX

    - #### recv

          protected SAMDatagramReceiver recv

  - ### Constructor Detail

    - #### SAMDatagramSession

          public SAMDatagramSession(String dest,
                            Properties props,
                            SAMDatagramReceiver recv)
                             throws IOException,
                                    DataFormatException,
                                    I2PSessionException

      Create a new SAM DATAGRAM session.
      Parameters:
        `dest` - Base64-encoded destination (private key)
        `props` - Properties to setup the I2P session
        `recv` - Object that will receive incoming data
      Throws:
        `IOException`
        `DataFormatException`
        `I2PSessionException`

    - #### SAMDatagramSession

          public SAMDatagramSession(InputStream destStream,
                            Properties props,
                            SAMDatagramReceiver recv)
                             throws IOException,
                                    DataFormatException,
                                    I2PSessionException

      Create a new SAM DATAGRAM session.
      Parameters:
        `destStream` - Input stream containing the destination keys
        `props` - Properties to setup the I2P session
        `recv` - Object that will receive incoming data
      Throws:
        `IOException`
        `DataFormatException`
        `I2PSessionException`

  - ### Method Detail

    - #### sendBytes

          public boolean sendBytes(String dest,
                          byte[] data)
                            throws DataFormatException

      Send bytes through a SAM DATAGRAM session.
      Specified by:
        `sendBytes` in class `SAMMessageSession`
      Parameters:
        `dest` - Destination
        `data` - Bytes to be sent
      Returns:
        True if the data was sent, false otherwise
      Throws:
        `DataFormatException`

    - #### messageReceived

          protected void messageReceived(byte[] msg)

      Description copied from class: `SAMMessageSession`
      Handle a new received message
      Specified by:
        `messageReceived` in class `SAMMessageSession`
      Parameters:
        `msg` - Message payload

    - #### shutDown

          protected void shutDown()

      Description copied from class: `SAMMessageSession`
      Do whatever is needed to shutdown the SAM session
      Specified by:
        `shutDown` in class `SAMMessageSession`