Foro de elhacker.net

Programación => Java => Mensaje iniciado por: RyogiShiki en 16 Agosto 2011, 04:28 am



Título: Timeout en mètodo connect de SocketChannel
Publicado por: RyogiShiki en 16 Agosto 2011, 04:28 am
Hola que tal.

Bueno, tengo un problema que no he podido resolver, tengo un SocketChannel, que se conecta a travès de el mètodo connect, esto lo estoy haciendo desde una GUI hecha en Swing, y uso SocketChannel porque es la opciòn non-blocking, el caso es que al realizar la conexiòn pongo un boton en modo setEnabled(false), pero desgraciadamente como el metodo connect de SocketChannel no permite establecer un timeout por si la conexiòn no se realiza, entonces nunca puedo restablecer el botòn. Se que puedo realizar este tipo de verificaciones con metodos como isConnectionPending o isConnected y en tal caso terminar con finishConnection() y reestablecer el botòn a su estado original, Lo que no he logrado es establecer el tiempo de ejecuciòn del mètodo connect  para cuando se alcance el tiempo definido hacer el dichoo finishConnection, he provado con Timers, pero no he logrado usar el SocketChannel dentro d estos, y en relalidad no estoy seguro de como implementar un timeout manual para el mètodo connect de un SocketChannel que es en definitiva lo que quiero hacer.

Gracias a todos por su atenciòn.

Espero ansioso sus respuestas
Un Saludo