Возможно, вы захотите написать свою собственную реализацию ObjectOutputStream
, которая создает ByteBuffer
и write()
s для канала.
С неблокирующими сокетами вы не можете напрямую использовать каналразъем;вам нужно использовать методы канала read()
и write()
.
Когда вы пишете свой собственный ObjectOutputStream
, вам в основном нужно переопределить методы write()
для буферизации вывода и использовать flush()
метод записи буфера в канал.Затем переопределите метод writeObject()
, чтобы он выглядел следующим образом:
public void writeObject(Object o) throws IOException {
super.writeObject(o);
flush();
}
, чтобы обеспечить запись данных после каждой записи объекта.