Lendo dados a partir de um canal de socket
Com esta dica você aprenderá como é feito a leitura dos dados em um SocketChannel.
// Cria um buffer direto para obter o bytes do socket.
// Os buffers diretos devem ser re-utilizados tanto quanto possível
ByteBuffer buf = ByteBuffer.allocateDirect(1024);
try {
// Limpa o buffer e ler os bytes do socket
buf.clear();
int numBytesRead = socketChannel.read(buf);
if (numBytesRead == -1) {
// Não existem mais bytes a serem lidos do canal
socketChannel.close();
} else {
// Para ler os bytes, "flip" o buffer
buf.flip();
// Leia os bytes do buffer ...
}
} catch (IOException e) {
// Conexão pode ser fechada
}