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?