Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 17
mcs Va por buen camino
Como evitar el Asynchronous socket error?

Buenos días,

Tengo una aplicación que se comunica con un dispositivo a través de sockets. Para la comunicación uso el TClientSocket. En general funciona todo correctamente, a excepción de cuando hay algún problema de comunicación (dirección IP incorrecta, dispositivo apagado, timeout, etc).

Todos estos problemas los puedo capturar. Cuando ocurren, aviso al usuario mediante un mensaje, y procedo a cerrar la conexión del TClientSocket, con el método Close. Aparentemente se cierra el socket, pero unos segundos después, empiezan a aparecer (cada 5 o 10 segundos) ventanas con el mensaje "Asynchronous socket error 10060", error de Windows que indica que el socket ha hecho un timeout.

Por tanto, no sé si es que realmente no se cierra el socket cuando se lo pido, o que lo enviado queda en alguna cola del Windows cómo pendiente. Y claro, es muy molesto que cuando fallan las comunicaciones salgan errores de Windows (y si no se cierra la aplicación, no se puede volver a comunicar).

Y mi pregunta es: que puedo hacer para evitar estos errores? El TClientSocket lo tengo configurado en "nonBlocking". Quizá mejor cambiar y usar algun componente de las Indy? Continuar con el TClientSocket pero usandolo en modo bloqueante?

Cualquier ayuda/recomendación será bienvenida!

Saludos,

Marc

Última edición por mcs fecha: 28-05-2010 a las 08:50:51.
Responder Con Cita
  #2  
Antiguo 28-05-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 17
mcs Va por buen camino
Ya lo he solucionado.

En el evento OnError del TClientSocket, si se pone la variable ErrorCode a 0 no se muestra ninguna ventana de error.

En fin, imagino que si la ayuda del Delphi 2010 fuera un poco decente, no habría estado tanto tiempo con el maldito error...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como evitar un Runtime error 216 sitrico Varios 2 20-03-2009 17:21:12
"Asynchronous socket error 10061." Mis clientes se cuelgan Boris Internet 2 13-09-2007 16:59:17
¿Como evitar este mensaje de error? Deiv HTML, Javascript y otros 4 27-11-2006 21:46:38
NMFTP :Error 10038 Socket operation on non socket judit Internet 2 25-05-2006 09:06:33
como evitar el error: insufficient memory for this operatiion click Varios 2 10-11-2003 07:03:11


La franja horaria es GMT +2. Ahora son las 00:39:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi