fast androidnetworking android networking nio

androidnetworking - fast android networking



Java NIO en Android: ¿Intentar LEER/ESCRIBIR mientras la conexión aún está pendiente? (1)

Esta pregunta se refiere a NIO de Java en Android (2.2, aunque puedo construir para API más altas si es necesario): Después de realizar una conexión de SocketChannel () a una dirección IP de destino, registro mi canal para una operación de LECTURA. El problema es que cuando intento realizar una LECTURA en el juego de claves seleccionado resultante, recibo NotYetConnectedException. Si bien puedo verificar el estado del canal con isConnectionPending antes de intentar LEER, me gustaría que las teclas READ se seleccionen solo cuando la conexión funciona. ¿Algunas ideas?


Lo estás haciendo mal.

Mientras la conexión está pendiente, el canal solo debe registrarse para OP_CONEXIÓN.

Cuando OP_CONNECT dispara, debe llamar a finishConnect (), y luego proceder de la siguiente manera:

  1. Si devuelve verdadero, debe cancelar el registro de OP_CONNECT, y luego puede registrar OP_READ u OP_WRITE.

  2. Si devuelve falso, no haga nada: la conexión aún está pendiente.

  3. Si arroja una excepción, la conexión ha fallado y debe cerrar el canal.