Проблема в вашем клиенте, который ничего не пишет, как намекнул Том.вот что происходит:
ByteBuffer buff = ByteBuffer.alloacate(1024); // ==> position=0, limit=1024
затем:
buff.flip(); // ==> position=0, limit=0
Это так, как указано в javdaoc для flip ():установить на ноль ".Поэтому вам нужно как минимум смоделировать, что вы помещаете некоторые данные в буфер, например:
for(int i=0;i<1000;i++) {
buff.position(1024); // put 1024 bytes of data in the buffer
buff.flip();
...
}
Кроме того, нет гарантии, что chan.write () запишет все 1024 байта одновременно, поэтомуВозможно, вы захотите сделать это в цикле:
for (int i=0;i<1000;i++) {
buf.position(1024);
buff.flip();
while (buff.hasRemaining()) {
chan.write(buff);
buff.compact();
}
}