## Uses of Class
net.i2p.client.I2PSessionException

Packages that use I2PSessionException
net.i2p.client: Implements the base I2P SDK for developing applications that communicate through I2P.

Uses of I2PSessionException in net.i2p.client

Methods in net.i2p.client that throw I2PSessionException
`void` `I2PSessionImpl.connect()` Connect to the router and establish a session.
`void` `I2PSession.connect()` Actually connect the session and start receiving/sending messages
`void` `ATalk.connect()` Actually start up the connection to the I2P network.
`void` `I2CPMessageProducer.connect(I2PSessionImpl session)` Send all the messages that a client needs to send to a router to establish a new session.
`void` `I2CPMessageProducer.createLeaseSet(I2PSessionImpl session, LeaseSet leaseSet, SigningPrivateKey signingPriv, PrivateKey priv)` Create a new signed leaseSet in response to a request to do so and send it to the router
`I2PSession` `I2PClientImpl.createSession(I2PAppContext context, java.io.InputStream destKeyStream, java.util.Properties options)` Create a new session (though do not connect it yet)
`I2PSession` `I2PClientImpl.createSession(java.io.InputStream destKeyStream, java.util.Properties options)` Create a new session (though do not connect it yet)
`I2PSession` `I2PClient.createSession(java.io.InputStream destKeyStream, java.util.Properties options)` Create a new client session for the Destination stored at the destKeyStream using the specified options to both connect to the router, to instruct the router how to handle the new session, and to configure the end to end encryption.
`void` `I2PSession.destroySession()` Tear down the session and release any resources.
`void` `I2CPMessageProducer.disconnect(I2PSessionImpl session)` Send messages to the router destroying the session and disconnecting
`byte[]` `I2PSessionImpl2.receiveMessage(int msgId)` pull the unencrypted AND DECOMPRESSED data
`byte[]` `I2PSessionImpl.receiveMessage(int msgId)` Pull the unencrypted data from the message that we've already prefetched and notified the user that its available.
`byte[]` `I2PSession.receiveMessage(int msgId)` Receive a message that the router has notified the client about, returning the payload.
`void` `I2CPMessageProducer.reportAbuse(I2PSessionImpl session, int msgId, int severity)` Send an abuse message to the router
`void` `I2PSessionImpl.reportAbuse(int msgId, int severity)` Report abuse with regards to the given messageId
`void` `I2PSession.reportAbuse(int msgId, int severity)` Instruct the router that the message received was abusive (including how abusive on a 1-100 scale) in the hopes the router can do something to minimize receiving abusive messages like that in the future.
`boolean` `I2PSessionImpl2.sendMessage(Destination dest, byte[] payload)`
`abstract boolean` `I2PSessionImpl.sendMessage(Destination dest, byte[] payload)` Send the data to the destination.
`boolean` `I2PSession.sendMessage(Destination dest, byte[] payload)` Send a new message to the given destination, containing the specified payload, returning true if the router feels confident that the message was delivered.
`boolean` `I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size)`
`boolean` `I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size)`
`boolean` `I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, java.util.Set tagsSent)`
`boolean` `I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, java.util.Set tagsSent)`
`boolean` `I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, java.util.Set tagsSent)`
`abstract boolean` `I2PSessionImpl.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, java.util.Set tagsSent)`
`boolean` `I2PSession.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, java.util.Set tagsSent)` Like sendMessage above, except the key used and the tags sent are exposed to the application.
`(package private) void` `I2PSessionImpl.sendMessage(I2CPMessage message)` Deliver an I2CP message to the router
`void` `I2CPMessageProducer.sendMessage(I2PSessionImpl session, Destination dest, long nonce, byte[] payload, SessionTag tag, SessionKey key, java.util.Set tags, SessionKey newKey)` Package up and send the payload to the router for delivery

Constructors in net.i2p.client that throw I2PSessionException
`I2PSessionImpl(I2PAppContext context, java.io.InputStream destKeyStream, java.util.Properties options)` Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey from the destKeyStream, and using the specified options to connect to the router
`I2PSessionImpl2(I2PAppContext ctx, java.io.InputStream destKeyStream, java.util.Properties options)` Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey from the destKeyStream, and using the specified options to connect to the router