Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Como Limpiar BytesReceived de Ping componente Indy (https://www.clubdelphi.com/foros/showthread.php?t=76093)

chartres 07-10-2011 23:24:46

Como Limpiar BytesReceived de Ping componente Indy
 
Hola
tengo una aplicacion para hacer pings a varios servidores (componente Indy IdIcmpClient)
y verifica si le regresa datos o BytesRecived y pone una palomita de ok.

pero el problema esque cuando hace un ping y no encuentra el host
al hacer la verificacion si recibio bytes, guarda los bytes de el ping anterior y hace como si si hubiera resultados.

Alguien sabe como limpiar esos BytesRecived antes de hacer un nuevo ping, o algo que reinicie el componente.

codigo para comparar respuesta

if IdIcmpClient1.ReplyStatus.BytesReceived = 0 then


Gracias

ecfisa 08-10-2011 20:23:34

Hola.

No conozco mucho sobre la clase TIdIcmpClient, pero se me ocurre que podrías probar creando una nueva instancia para cada petición, y luego de realizar las acciones liberarla. De ese modo la propiedad BytesReceived debería quedar limpia en cada nuevo Ping.

Código Delphi [-]
  with TIdicmpClient.Create(nil) do
  try
    BufferSize:= 8192;
    ReceiveTimeOut:= 600;
    Protocol:= 1;
    Host:= XXX; // variable con la dirección
    Ping;
    // comprobaciones que realices:
    // almacenar, evaluar o mostrar resultados
  finally
    Free;
  end;

Saludos.

escafandra 09-10-2011 01:00:08

No me gustan mucho los componentes de terceros. Si quieres puedes usar esta función para realizar ping sólo con la API de Windows.

Saludos.

chartres 10-10-2011 19:01:05

Muchas gracias por las ideas.

Para el usuario escafandra, te comento que probe la otra opcion para realizar ping y al parecer me funciona, Gracias.
solo una duda, veo que mencionas algo de que si es por proxy puede no funcionar.

Te comento mi caso y para que usaria el ping:

Es una aplicacion para revisar la conexion a servidores de base de datos, no es ping a direcciones de internet, sino de red, servidores SQL, ORACLE etc, ya que en mi trabajo usamos varios sistemas y muchos usuarios y se penso hacer una aplicacion de diagnostico para soporte, y parte del diagnostico es revisar si hay red y hacer ping a los servidores para probar las conexiones.

Bueno ya sabiend esto, cres que el ping por medio de la API me funcione bien o mejor para mi caso.

Gracias nuevamente.

escafandra 10-10-2011 21:53:48

El proxy sólo interfiere para la conexión a internet. En la red local el ping va a funcionar perfectamente. Funcionalmente no deben existir diferencias entre un ping con la API pura o con componentes, salvo que, en este segundo caso, tu ejecutable crece mas y puede ser mas lento.

Cuando sugerí mi función para realizar ping sin componentes lo hice pensando en el problema que comentaste con el buffer de respuesta, ya que mi función no plantea ese problema.

Saludos.

chartres 21-10-2011 22:15:14

Pues les comento que implemente bien el codigo y la funcion del Ping con la API, pero ya cuando lo lanzamos resulto con que trabajo bien en Win 7 y XP, pero en Windows 2000 el cual todavia tenemos algunos usuarios, marco error la aplicacion, referente ala API.

Quiza sea porque win 2000 tenga un dll diferente que en xp o w7.

escafandra 21-10-2011 23:56:32

Habría que ver que tipo de error da y que Windows 2000 tienen:
Cita:

Empezado por msdn.microsoft.com
Minimum supported client: Windows 2000 Professional

Saludos.

jesconsa 23-11-2011 19:36:27

Tengo el mismo problema. He tratado de explicarlo en otro hilo similar. Me gustaria no claudicar y seguir con Indy....es como si los Threads no estuvieran aislados y se cogiera el AReplyStatus de uno a otro.....

Saludos
Jesus

ramflores 12-06-2014 20:24:10

Hola.

buscando encontre este hilo, estoy tratando de probar la funcion, pero existen algunas variables que me dice que no existen, que uses debo tener declaradas?

Gracias de antemano


La franja horaria es GMT +2. Ahora son las 04:32:20.

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