Page 1 of 1

Detectar si hay conexión a internet

Posted: Fri Jun 29, 2007 8:01 am
by Andrés G.
Hola a todos,

Hasta ahora estaba compilado con la versión 2.3 de Fivewin y me he actualizado a la versión 7.01, de momento me va todo bien pero me he encontrado una dificultad.

Necesito saber si hay o no conexión a internet para, si la hay, descargar un archivo del FTP usando la clase TFTP que me va bien.

Esto lo debo hacer porque si inicio la descarga y no hay conexión a internet se me queda pillado el programa después de cerrarlo y si lo intentas volver a abrir te indica que solo se puede abrir una vez el programa, cosa lógica porque es lo que yo le mandé.

Bien, para comprobar si tengo conexión a internet hago lo siguiente:

IF TFTP():New( "ftp.microsoft.com", TInternet():New() ):hFTP>0
INTERNET=.T.
ENDIF


Es lo que se me ocurrió para poder saber si tengo conexión, seguramente hay otra forma mejor de hacerlo pero esta me funcionaba hasta que me actualicé.

Uso el ftp de microsoft porque no necesita autentificación, si uso el mío que si la necesita me da respuesta negativa y no me servia.

Cuando ejecuto mi programa copilado con FW 7.01 me da el siguiente error al compilar:

BLINKER : 1115 : FIVE.LIB(TFTP) : 'FILETIMETO' : unresolved external

BLINKER : 0 Warning error(s), 1 Fatal error(s)


Espero que me podáis ayudar, os agradezco de antemano vuestro interés.

Posted: Fri Jun 29, 2007 8:59 am
by Antonio Linares
Andrés,

Puedes usar esta función:

Code: Select all | Expand

function IsInternet() 
   WSAStartup()
return GetHostByName( "microsoft.com" ) != "0.0.0.0"

Posted: Fri Jun 29, 2007 9:29 am
by Andrés G.
Grácias Antonio,

Funciona a las mil maravillas.

Respecto al error que me sale con el sistema anterior, ¿sabes a que es debido?