Ola pessoal,
Estou migrando minhas conexões para NIO e estou com uma dúvida.
No Socket antigo, uma escrita sincrona de um byte[], fariamos assim:
// "socket" é um Socket
OutputStream out = socket.getOutputStream();
synchronized (out) {
out.write(meuByteArray);
out.flush();
}
Agora no NIO, eu possuo um SocketChannel e para escrever faço assim:
// "socket" é um SocketChannel
ByteBuffer buffer = ByteBuffer.wrap(containerBytes);
socket.write(buffer);
buffer.clear();
buffer = null;
Se eu sincronizar a variavel socket, o read dele tambem sera sincronizado, e queremos somente sincronizar o write .
Como podemos fazer uma escrita sincrona no SocketChannel?
Obrigado pela ajuda.