Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   ¿Como prevenir el Mensaje "socket error 11004" en Indy? (https://www.clubdelphi.com/foros/showthread.php?t=88901)

MAXIUM 23-08-2015 04:45:11

¿Como prevenir el Mensaje "socket error 11004" en Indy?
 
El asunto es bastante sencillo. Cuando el equipo se encuentra sin internet, mi aplicación arroja una ventana emergente con el mensaje Socket Error #11004 que lógicamente indica que no hay conexión.

El asunto es, que no quiero que salga ese mensaje, ni ventana ni nada. Intente con Try..Except pero no resulta. Todo se da en cuanto se ejecuta IdPOP31.Connect;

Código Delphi [-]
Try
    IdPOP31.Connect;
Except
     StatusBar1.Panels[0].Text:= 'ERROR';
     TodoBien:= False;
End;

IdPOP31.Disconnect;

¿Me ayudan? :D

AgustinOrtu 23-08-2015 07:10:00

Es que en realidad no es un error de Indy

http://www.clubdelphi.com/foros/showthread.php?t=59833

Es "culpa" de M$ :D

Interesante, estaria bueno encontrar una solucion, usando Tethering cuando se pierde conexion, o se desconectan las aplicaciones suele salir este error y a veces crashea la aplicacion completamente :(

Lepe 23-08-2015 21:17:56

MAXIUM, el error te lo estará dando por el Disconnect. Si ya se ha desconectado por un error de red, no puedes llamar a desconectar:
Código Delphi [-]
Try
  IdPOP31.Connect;
  try 
    // hacer lo que sea
  finally   
    IdPOP31.Disconnect;
    TodoBien:= True;
  end;
Except
     StatusBar1.Panels[0].Text:= 'ERROR';
     TodoBien:= False;
End;
- En este caso si al conectar da fallo por algo, no intenta desconectar. El try except lo silenciará (que es lo que quieres)
- Si todo va bien pero lo que falla es "//hacer lo que sea", entonces intentará desconectar, pero el try except lo cazará y silenciará el error. Quedaría hacer un Freeandnil de las cosas que se hayan creado para que la aplicación se recupere del fallo, pero eso ya te encargas tú, que sabes el resto del código.

Saludos!

MAXIUM 24-08-2015 02:41:29

No, tampoco a dado resultado.

Solo me queda agregar una rutina que compruebe si hay conexión a internet, previamente.


La franja horaria es GMT +2. Ahora son las 14:55:15.

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