Java NIO Server

Actualmente estoy trabajando en un servidor Java NIO (de un solo hilo) y he encontrado algunos problemas. El servidor acepta conexiones entrantes, escribe paquetes iniciales (el paquete contiene algunos datos que el cliente usa para una mayor comunicación) a los clientes pero no lee de ellos. El servidor intenta leer solo cuando cierro el cliente y, por supuesto, devuelve -1.

Al aceptar la conexión, se registra en:

selectionKey = socketChannel.register(_selector, SelectionKey.OP_READ)

selectionKey.isReadable() devolucionesfalse (¿deberia?

Antes de enviar el paquete inicial, las operaciones se cambian a:

_selectionKey.interestOps(_selectionKey.interestOps() | SelectionKey.OP_WRITE)

Después de enviar el paquete inicial, las operaciones se cambian a:

selectedKey.interestOps(selectedKey.interestOps() & ~SelectionKey.OP_WRITE)

Packet se envía.

¿Cual podría ser el problema? ¿Se puede relacionar con el cliente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta