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 07-10-2011
Avatar de chartres
chartres chartres is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 31
Poder: 0
chartres Va por buen camino
Question 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
Responder Con Cita
  #2  
Antiguo 08-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 09-10-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #4  
Antiguo 10-10-2011
Avatar de chartres
chartres chartres is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 31
Poder: 0
chartres Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 10-10-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #6  
Antiguo 21-10-2011
Avatar de chartres
chartres chartres is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 31
Poder: 0
chartres Va por buen camino
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.
__________________
No hay que Postear primero, hay saber Buscar..
Responder Con Cita
  #7  
Antiguo 21-10-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #8  
Antiguo 23-11-2011
jesconsa jesconsa is offline
Miembro
 
Registrado: dic 2009
Posts: 30
Poder: 0
jesconsa Va por buen camino
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
Responder Con Cita
  #9  
Antiguo 12-06-2014
Avatar de ramflores
ramflores ramflores is offline
Miembro
 
Registrado: may 2005
Ubicación: Monterrey, Mex.
Posts: 87
Poder: 19
ramflores Va por buen camino
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
__________________
Gracias de antemano
Saludos ........
---------------------------------
Ramiro Flores
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 limpiar un Componente Timage? soma25 C++ Builder 5 14-03-2012 08:51:39
como hago ping a una pagina o IP en D6 darkbits Internet 3 03-09-2010 18:31:50
Como reemplazar Indy 10 por Indy 9 en Delphi 2007 ? rolandoj Internet 0 13-02-2008 18:44:31
¿Como hacer Ping desde codigo? escafandra C++ Builder 13 04-01-2008 11:15:14
como hacer un ping.... killaton Internet 8 26-03-2005 20:21:10


La franja horaria es GMT +2. Ahora son las 22:41:55.


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