Java NIO Server
Atualmente, estou trabalhando em um servidor Java NIO (single-threaded) e encontrei alguns problemas. O servidor aceita conexões de entrada, grava pacotes iniciais (o pacote contém alguns dados que o cliente usa para comunicação adicional) nos clientes, mas não os lê. O servidor tenta ler apenas quando eu fecho o cliente e, é claro, ele retorna -1.
Ao aceitar a conexão, ela está sendo registrada em:
selectionKey = socketChannel.register(_selector, SelectionKey.OP_READ)
selectionKey.isReadable()
retornafalse
(deveria?
Antes de enviar o pacote inicial, as operações são alteradas para:
_selectionKey.interestOps(_selectionKey.interestOps() | SelectionKey.OP_WRITE)
Depois de enviar o pacote inicial, as operações são alteradas para:
selectedKey.interestOps(selectedKey.interestOps() & ~SelectionKey.OP_WRITE)
pacote é enviad
Qual poderia ser o problema? Pode estar relacionado ao cliente?