Я пытаюсь создать неблокирующий сервер сокетов и отправил сериализованный объект с клиента через сокет на сервер.Сервер получает пустой байтовый массив, но затем заполненный байтовый массив с сериализованным объектом.
final int value = channel.read(buffer);
if(value == -1){
throw new IOException("End of stream");
}
final byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes, 0, bytes.length);
buffer.clear();
Код, который я использовал для сериализации объекта:
public static byte[] serialize(Object object) throws IOException {
final ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
final ObjectOutputStream stream = new ObjectOutputStream(byteStream);
stream.writeObject(object);
final byte[] bytes = byteStream.toByteArray();
stream.close();
byteStream.close();
return bytes;
}
Есть два выхода, которыеисходить из этого кода, байтовый массив, который является пустым, и байтовый массив, который заполняется сериализованным объектом.Сначала я получил пустой байтовый массив, затем следовал заполненный байтовый массив.