Reads data in an InputStream to a byte[]; data must be preceded by
a 4 byte binary length (network byte order,
not included in resulting byte[]).
Writes a byte[] to an OutputStream after a 4 byte binary length.
The length field contains the length of data following the length
field.
(network byte order).
deserialize(java.io.InputStream inputStream)
Reads a 4 byte length from the stream and then reads that length
from the stream and returns the data in a byte[].
protected int
read(java.io.InputStream inputStream,
byte[] buffer,
boolean header)
Reads data from the socket and puts the data in buffer.
void
serialize(byte[] bytes,
java.io.OutputStream outputStream)
Writes the byte[] to the output stream, preceded by a 4 byte
length in network byte order (big endian).
public byte[] deserialize(java.io.InputStream inputStream)
throws java.io.IOException
Reads a 4 byte length from the stream and then reads that length
from the stream and returns the data in a byte[]. Throws an
IOException if the length field exceeds the maxMessageSize.
Throws a SoftEndOfStreamException if the stream
is closed between messages.
Throws:
java.io.IOException
serialize
public void serialize(byte[] bytes,
java.io.OutputStream outputStream)
throws java.io.IOException
Writes the byte[] to the output stream, preceded by a 4 byte
length in network byte order (big endian).
Throws:
java.io.IOException
read
protected int read(java.io.InputStream inputStream,
byte[] buffer,
boolean header)
throws java.io.IOException
Reads data from the socket and puts the data in buffer. Blocks until
buffer is full or a socket timeout occurs.
Parameters:
buffer -
header - true if we are reading the header
Returns:
< 0 if socket closed and not in the middle of a message