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 
   }