Método CheckConnection para tFtp
Método CheckConnection para tFtp
Hola a todos,
Hace tiempo que no me paseaba por aquí....
Quisiera saber si se puede verificar sobre un tFtp que la conexión sigue
'viva'.
En la clase tInternet está el método 'CheckConnection'... pero no he sabido
hacerlo funcionar con tFtp.
¿Sabríais decirme si se puede?
Saludos y gracias!
José Luis Capel
Hace tiempo que no me paseaba por aquí....
Quisiera saber si se puede verificar sobre un tFtp que la conexión sigue
'viva'.
En la clase tInternet está el método 'CheckConnection'... pero no he sabido
hacerlo funcionar con tFtp.
¿Sabríais decirme si se puede?
Saludos y gracias!
José Luis Capel
Método CheckConnection para tFtp
José Luis,
acabo de probarlo y funciona correctamete:
WITH OBJECT TFTP():Create()
IF :Open()
IF :Connect( "ftp.mozilla.org" )
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
ELSE
MsgInfo( :GetErrorDescription() )
ENDIF
:Close()
ENDIF
END
Saludos,
José Lalín
acabo de probarlo y funciona correctamete:
WITH OBJECT TFTP():Create()
IF :Open()
IF :Connect( "ftp.mozilla.org" )
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
ELSE
MsgInfo( :GetErrorDescription() )
ENDIF
:Close()
ENDIF
END
Saludos,
José Lalín
Método CheckConnection para tFtp
Hola José,
He estado probando en varios ftp distintos y veo que en alguno el
CheckConnection devuelve .F. mientras en otros si.
Las pruebas las hice inicialmente con un ftp que siempre me devuelve .F.
Si quieres, por privado te paso los datos de acceso para probar con el mismo
ejemplo y ver que devuelve .F. (y está conectado).
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:51015583$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
acabo de probarlo y funciona correctamete:
WITH OBJECT TFTP():Create()
IF :Open()
IF :Connect( "ftp.mozilla.org" )
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
ELSE
MsgInfo( :GetErrorDescription() )
ENDIF
:Close()
ENDIF
END
Saludos,
José Lalín
He estado probando en varios ftp distintos y veo que en alguno el
CheckConnection devuelve .F. mientras en otros si.
Las pruebas las hice inicialmente con un ftp que siempre me devuelve .F.
Si quieres, por privado te paso los datos de acceso para probar con el mismo
ejemplo y ver que devuelve .F. (y está conectado).
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:51015583$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
acabo de probarlo y funciona correctamete:
WITH OBJECT TFTP():Create()
IF :Open()
IF :Connect( "ftp.mozilla.org" )
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
ELSE
MsgInfo( :GetErrorDescription() )
ENDIF
:Close()
ENDIF
END
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
> He estado probando en varios ftp distintos y veo que en alguno el
> CheckConnection devuelve .F. mientras en otros si.
asegúrate de pasar el nombre correctamente si no no funcionará. Por
ejemplo, este funciona:
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
Y este no:
MsgInfo( :CheckConnection( "ftp.mozilla.org" ) )
Imagino que el API espera la URL con el protocolo y si no falla.
Por otra parte, prueba a hacerlo a mano:
* Usa un TTimer() con el intervalo que necesites y cada vez que se ejecute
haces: oFTP:Command( "NOOP" )
Saludos,
José Lalín
> He estado probando en varios ftp distintos y veo que en alguno el
> CheckConnection devuelve .F. mientras en otros si.
asegúrate de pasar el nombre correctamente si no no funcionará. Por
ejemplo, este funciona:
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
Y este no:
MsgInfo( :CheckConnection( "ftp.mozilla.org" ) )
Imagino que el API espera la URL con el protocolo y si no falla.
Por otra parte, prueba a hacerlo a mano:
* Usa un TTimer() con el intervalo que necesites y cada vez que se ejecute
haces: oFTP:Command( "NOOP" )
Saludos,
José Lalín
Método CheckConnection para tFtp
José,
Gracias por tu respuesta.
Lo he probado siguiendo tu ejemplo (poniendo el 'ftp://' antes de la url en
el checkconnection).
Me pasa con dos ftps distintos.
¿Qué se hace en esa función? ¿Puede ser que ese ftp que falla (un linux)
devuelva una valor distinto al resto (en el checconnection) y por eso
devuelve un .F.?
Saludos y gracias,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:510283ff$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
> He estado probando en varios ftp distintos y veo que en alguno el
> CheckConnection devuelve .F. mientras en otros si.
asegúrate de pasar el nombre correctamente si no no funcionará. Por
ejemplo, este funciona:
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
Y este no:
MsgInfo( :CheckConnection( "ftp.mozilla.org" ) )
Imagino que el API espera la URL con el protocolo y si no falla.
Por otra parte, prueba a hacerlo a mano:
* Usa un TTimer() con el intervalo que necesites y cada vez que se ejecute
haces: oFTP:Command( "NOOP" )
Saludos,
José Lalín
Gracias por tu respuesta.
Lo he probado siguiendo tu ejemplo (poniendo el 'ftp://' antes de la url en
el checkconnection).
Me pasa con dos ftps distintos.
¿Qué se hace en esa función? ¿Puede ser que ese ftp que falla (un linux)
devuelva una valor distinto al resto (en el checconnection) y por eso
devuelve un .F.?
Saludos y gracias,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:510283ff$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
> He estado probando en varios ftp distintos y veo que en alguno el
> CheckConnection devuelve .F. mientras en otros si.
asegúrate de pasar el nombre correctamente si no no funcionará. Por
ejemplo, este funciona:
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
Y este no:
MsgInfo( :CheckConnection( "ftp.mozilla.org" ) )
Imagino que el API espera la URL con el protocolo y si no falla.
Por otra parte, prueba a hacerlo a mano:
* Usa un TTimer() con el intervalo que necesites y cada vez que se ejecute
haces: oFTP:Command( "NOOP" )
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
> ¿Qué se hace en esa función? ¿Puede ser que ese ftp que falla (un linux)
> devuelva una valor distinto al resto (en el checconnection) y por eso
> devuelve un .F.?
Pues no sé qué hace internamente. La documentación es esta:
http://msdn.microsoft.com/en-us/library ... sktop/aa38 4346%28v=vs.85%29.aspx
¿Has probado de la otra manera?
Saludos,
José Lalín
> ¿Qué se hace en esa función? ¿Puede ser que ese ftp que falla (un linux)
> devuelva una valor distinto al resto (en el checconnection) y por eso
> devuelve un .F.?
Pues no sé qué hace internamente. La documentación es esta:
http://msdn.microsoft.com/en-us/library ... sktop/aa38 4346%28v=vs.85%29.aspx
¿Has probado de la otra manera?
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
creo que CheckConnection() funciona con algunos servidores porque aceptan
conexiones anónimas pero falla con los que no.
He probado con la forma estándar que funciona con cualquier navegador:
IF !oFtp:CheckConnection( "ftp://" + oFtp:cUser + ":" + oFtp:cPassword" +
"@ftp.servidor.es" )
MsgInfo("Error Check Connection : "+tostring( GetLastError() ) )
ENDIF
Y tampoco, devuelve error 12015 que significa fallo en el login, así que me
imagino que no puede hacerse de esta manera.
Saludos,
José Lalín
creo que CheckConnection() funciona con algunos servidores porque aceptan
conexiones anónimas pero falla con los que no.
He probado con la forma estándar que funciona con cualquier navegador:
IF !oFtp:CheckConnection( "ftp://" + oFtp:cUser + ":" + oFtp:cPassword" +
"@ftp.servidor.es" )
MsgInfo("Error Check Connection : "+tostring( GetLastError() ) )
ENDIF
Y tampoco, devuelve error 12015 que significa fallo en el login, así que me
imagino que no puede hacerse de esta manera.
Saludos,
José Lalín
Método CheckConnection para tFtp
Hola José,
Usas el flag FLAG_ICC_FORCE_CONNECTION en el segundo parámetro?
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de noticias:[email=5102bf28@svctag-j7w3v3j....]5102bf28@svctag-j7w3v3j....[/email]
José Luis,
> ¿Qué se hace en esa función? ¿Puede ser que ese ftp que falla (un linux)
> devuelva una valor distinto al resto (en el checconnection) y por eso
> devuelve un .F.?
Pues no sé qué hace internamente. La documentación es esta:
http://msdn.microsoft.com/en-us/library ... sktop/aa38 4346%28v=vs.85%29.aspx
¿Has probado de la otra manera?
Saludos,
José Lalín
Usas el flag FLAG_ICC_FORCE_CONNECTION en el segundo parámetro?
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de noticias:[email=5102bf28@svctag-j7w3v3j....]5102bf28@svctag-j7w3v3j....[/email]
José Luis,
> ¿Qué se hace en esa función? ¿Puede ser que ese ftp que falla (un linux)
> devuelva una valor distinto al resto (en el checconnection) y por eso
> devuelve un .F.?
Pues no sé qué hace internamente. La documentación es esta:
http://msdn.microsoft.com/en-us/library ... sktop/aa38 4346%28v=vs.85%29.aspx
¿Has probado de la otra manera?
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
> Usas el flag FLAG_ICC_FORCE_CONNECTION en el segundo parámetro?
Sí.
Saludos,
José Lalín
> Usas el flag FLAG_ICC_FORCE_CONNECTION en el segundo parámetro?
Sí.
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
creo que he encontrado algo. Luego te lo envío para que lo pruebes.
Saludos,
José Lalín
creo que he encontrado algo. Luego te lo envío para que lo pruebes.
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
quitando el flag devuelve siempre .T. hasta para sitios que no existen.
Saludos,
José Lalín
quitando el flag devuelve siempre .T. hasta para sitios que no existen.
Saludos,
José Lalín
Método CheckConnection para tFtp
José,
Entonces la respuesta de esa función de MS es incoherente según al FTP al
que le hagas la consulta... Viendo esto... no tengo claro si esa función
debería seguir para la clase tFTP... ¿cómo lo ves?
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:5103baba$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
quitando el flag devuelve siempre .T. hasta para sitios que no existen.
Saludos,
José Lalín
Entonces la respuesta de esa función de MS es incoherente según al FTP al
que le hagas la consulta... Viendo esto... no tengo claro si esa función
debería seguir para la clase tFTP... ¿cómo lo ves?
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:5103baba$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
quitando el flag devuelve siempre .T. hasta para sitios que no existen.
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
de momento la dejaré como VIRTUAL para no romper código antiguo hasta que
encuentre el porqué de estos resultados tan extraños.
Saludos,
José Lalín
de momento la dejaré como VIRTUAL para no romper código antiguo hasta que
encuentre el porqué de estos resultados tan extraños.
Saludos,
José Lalín
Método CheckConnection para tFtp
José Luis,
la función está bien. Lo que está mal es la documentación que hice cuando
escribí la clase por un error de interpretación.
Lo que hace el API es intentar tirarle un ping al servidor indicado en la
URL y ese .T./.F. es lo que devuelve. Por eso es necesario pasarle la URL
en formato <protocolo>://<servidor> (pe. http://www.google.com)
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
MsgInfo( :CheckConnection( "http://www.google.com" ) )
MsgInfo( :CheckConnection( "hgddfdfttp://www.google.com" ) )
MsgInfo( :CheckConnection( "www.google.com" ) )
Los tres primeros devuelven .T. porque la función recibe la URL en el
formato correcto (otra cosa es que hgddddfdf:// no sea válido y lo ignore)
y le tira el ping a mozilla.org y google.com mientras que la última falla
porque no se le ha pasado el protocolo.
Por tanto, este método debe usarse para comprobar si hay una conexión
activa a la red pero no para comprobar si estamos conectados a una URL
específica.
Espero que ahora esté más claro.
Saludos,
José Lalín
la función está bien. Lo que está mal es la documentación que hice cuando
escribí la clase por un error de interpretación.
Lo que hace el API es intentar tirarle un ping al servidor indicado en la
URL y ese .T./.F. es lo que devuelve. Por eso es necesario pasarle la URL
en formato <protocolo>://<servidor> (pe. http://www.google.com)
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
MsgInfo( :CheckConnection( "http://www.google.com" ) )
MsgInfo( :CheckConnection( "hgddfdfttp://www.google.com" ) )
MsgInfo( :CheckConnection( "www.google.com" ) )
Los tres primeros devuelven .T. porque la función recibe la URL en el
formato correcto (otra cosa es que hgddddfdf:// no sea válido y lo ignore)
y le tira el ping a mozilla.org y google.com mientras que la última falla
porque no se le ha pasado el protocolo.
Por tanto, este método debe usarse para comprobar si hay una conexión
activa a la red pero no para comprobar si estamos conectados a una URL
específica.
Espero que ahora esté más claro.
Saludos,
José Lalín
Método CheckConnection para tFtp
José,
No debe ser un ping... o por lo menos con mi ftp funciona el ping..
Es decir, yo hago 'ping ftp.misitio.com' desde la línea de comando y me
responde correctamente.
Sin embargo, el checkConnection("ftp://ftp.misitio.com") me devuelve .F.
En todo caso, gracias por tu ayuda.
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:5106c6fa$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
la función está bien. Lo que está mal es la documentación que hice cuando
escribí la clase por un error de interpretación.
Lo que hace el API es intentar tirarle un ping al servidor indicado en la
URL y ese .T./.F. es lo que devuelve. Por eso es necesario pasarle la URL
en formato <protocolo>://<servidor> (pe. http://www.google.com)
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
MsgInfo( :CheckConnection( "http://www.google.com" ) )
MsgInfo( :CheckConnection( "hgddfdfttp://www.google.com" ) )
MsgInfo( :CheckConnection( "www.google.com" ) )
Los tres primeros devuelven .T. porque la función recibe la URL en el
formato correcto (otra cosa es que hgddddfdf:// no sea válido y lo ignore)
y le tira el ping a mozilla.org y google.com mientras que la última falla
porque no se le ha pasado el protocolo.
Por tanto, este método debe usarse para comprobar si hay una conexión
activa a la red pero no para comprobar si estamos conectados a una URL
específica.
Espero que ahora esté más claro.
Saludos,
José Lalín
No debe ser un ping... o por lo menos con mi ftp funciona el ping..
Es decir, yo hago 'ping ftp.misitio.com' desde la línea de comando y me
responde correctamente.
Sin embargo, el checkConnection("ftp://ftp.misitio.com") me devuelve .F.
En todo caso, gracias por tu ayuda.
Saludos,
José Luis Capel
"José Lalín" escribió en el mensaje de
noticias:5106c6fa$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
la función está bien. Lo que está mal es la documentación que hice cuando
escribí la clase por un error de interpretación.
Lo que hace el API es intentar tirarle un ping al servidor indicado en la
URL y ese .T./.F. es lo que devuelve. Por eso es necesario pasarle la URL
en formato <protocolo>://<servidor> (pe. http://www.google.com)
MsgInfo( :CheckConnection( "ftp://ftp.mozilla.org" ) )
MsgInfo( :CheckConnection( "http://www.google.com" ) )
MsgInfo( :CheckConnection( "hgddfdfttp://www.google.com" ) )
MsgInfo( :CheckConnection( "www.google.com" ) )
Los tres primeros devuelven .T. porque la función recibe la URL en el
formato correcto (otra cosa es que hgddddfdf:// no sea válido y lo ignore)
y le tira el ping a mozilla.org y google.com mientras que la última falla
porque no se le ha pasado el protocolo.
Por tanto, este método debe usarse para comprobar si hay una conexión
activa a la red pero no para comprobar si estamos conectados a una URL
específica.
Espero que ahora esté más claro.
Saludos,
José Lalín