## Uses of Class
net.i2p.data.i2cp.I2CPMessageException

- Packages that use I2CPMessageException
  Package | Description
  --- | ---
  net.i2p.data.i2cp | The Invisible Internet Client Protocol (I2CP) allows applications simplified access to I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP).
  net.i2p.internal | Internal communication interfaces for router and client within same JVM, using queues instead of socket-based I2CP.
  net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration.

- - ### Uses of I2CPMessageException in net.i2p.data.i2cp

    Methods in net.i2p.data.i2cp that throw I2CPMessageException
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | CreateLeaseSet2Message.`doReadMessage(InputStream in, int size)`
    `protected void` | HostLookupMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | ReceiveMessageBeginMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | CreateLeaseSetMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | CreateSessionMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | DestLookupMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | GetBandwidthLimitsMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | RequestLeaseSetMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | ReportAbuseMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | BandwidthLimitsMessage.`doReadMessage(InputStream in, int size)`
    `protected abstract void` | I2CPMessageImpl.`doReadMessage(InputStream buf, int size)` Read in the payload part of the message (after the initial 4 byte size and 1 byte type)
    `protected void` | HostReplyMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | DestReplyMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | SetDateMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | DisconnectMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | MessageStatusMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | RequestVariableLeaseSetMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | BlindingInfoMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | ReconfigureSessionMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | DestroySessionMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | ReceiveMessageEndMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | GetDateMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | SessionStatusMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | MessagePayloadMessage.`doReadMessage(InputStream in, int size)`
    `protected void` | SendMessageMessage.`doReadMessage(InputStream in, int size)`
    `protected byte[]` | CreateLeaseSet2Message.`doWriteMessage()`
    `protected byte[]` | HostLookupMessage.`doWriteMessage()`
    `protected byte[]` | ReceiveMessageBeginMessage.`doWriteMessage()`
    `protected byte[]` | CreateLeaseSetMessage.`doWriteMessage()`
    `protected byte[]` | CreateSessionMessage.`doWriteMessage()`
    `protected byte[]` | DestLookupMessage.`doWriteMessage()`
    `protected byte[]` | GetBandwidthLimitsMessage.`doWriteMessage()`
    `protected byte[]` | RequestLeaseSetMessage.`doWriteMessage()`
    `protected byte[]` | ReportAbuseMessage.`doWriteMessage()`
    `protected byte[]` | BandwidthLimitsMessage.`doWriteMessage()`
    `protected abstract byte[]` | I2CPMessageImpl.`doWriteMessage()` Write out the payload part of the message (not including the 4 byte size and 1 byte type)
    `protected byte[]` | HostReplyMessage.`doWriteMessage()`
    `protected byte[]` | DestReplyMessage.`doWriteMessage()`
    `protected byte[]` | SetDateMessage.`doWriteMessage()`
    `protected byte[]` | DisconnectMessage.`doWriteMessage()`
    `protected byte[]` | MessageStatusMessage.`doWriteMessage()`
    `protected byte[]` | RequestVariableLeaseSetMessage.`doWriteMessage()`
    `protected byte[]` | BlindingInfoMessage.`doWriteMessage()`
    `protected byte[]` | ReconfigureSessionMessage.`doWriteMessage()`
    `protected byte[]` | DestroySessionMessage.`doWriteMessage()`
    `protected byte[]` | ReceiveMessageEndMessage.`doWriteMessage()`
    `protected byte[]` | GetDateMessage.`doWriteMessage()`
    `protected byte[]` | SessionStatusMessage.`doWriteMessage()`
    `protected byte[]` | MessagePayloadMessage.`doWriteMessage()`
    `protected byte[]` | SendMessageMessage.`doWriteMessage()`
    `void` | I2CPMessageImpl.`readMessage(InputStream in)` Validate the type and size of the message, and then read the message into the data structures.
    `void` | I2CPMessage.`readMessage(InputStream in)` Read the contents from the input stream into the current class's format.
    `static I2CPMessage` | I2CPMessageHandler.`readMessage(InputStream in)` Read an I2CPMessage from the stream and return the fully populated object.
    `void` | I2CPMessageImpl.`readMessage(InputStream in, int length, int type)` Read the body into the data structures
    `void` | I2CPMessage.`readMessage(InputStream in, int size, int type)` Read the contents from the input stream into the current class's format.
    `void` | SendMessageExpiresMessage.`readMessage(InputStream in, int length, int type)` Read the body into the data structures
    `void` | SendMessageMessage.`readMessage(InputStream in, int length, int type)` Read the body into the data structures
    `void` | ReceiveMessageBeginMessage.`writeMessage(OutputStream out)` Override to reduce mem churn
    `void` | I2CPMessageImpl.`writeMessage(OutputStream out)` Write out the full message to the stream, including the 4 byte size and 1 byte type header.
    `void` | I2CPMessage.`writeMessage(OutputStream out)` Write the current message to the output stream as a full message following the specification from the I2CP definition.
    `void` | MessageStatusMessage.`writeMessage(OutputStream out)` Override to reduce mem churn
    `void` | SendMessageExpiresMessage.`writeMessage(OutputStream out)` Write out the full message to the stream, including the 4 byte size and 1 byte type header.
    `void` | MessagePayloadMessage.`writeMessage(OutputStream out)` Write out the full message to the stream, including the 4 byte size and 1 byte type header.
    `void` | SendMessageMessage.`writeMessage(OutputStream out)` Write out the full message to the stream, including the 4 byte size and 1 byte type header.

  - ### Uses of I2CPMessageException in net.i2p.internal

    Methods in net.i2p.internal that throw I2CPMessageException
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | PoisonI2CPMessage.`doReadMessage(InputStream in, int size)` Deprecated. don't do this
    `protected byte[]` | PoisonI2CPMessage.`doWriteMessage()` Deprecated. don't do this

  - ### Uses of I2CPMessageException in net.i2p.router.client

    Methods in net.i2p.router.client that throw I2CPMessageException
    Modifier and Type | Method and Description
    --- | ---
    `void` | ClientWriterRunner.`addMessage(I2CPMessage msg)` Add this message to the writer's queue Nonblocking, throws exception if queue is full
    `(package private) void` | ClientConnectionRunner.`doSend(I2CPMessage msg)` Actually send the I2CPMessage to the peer through the socket
    `(package private) void` | QueuedClientConnectionRunner.`doSend(I2CPMessage msg)` Actually send the I2CPMessage to the client.