Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Recibir en ms el ping. (https://www.clubdelphi.com/foros/showthread.php?t=58299)

rauros 15-07-2008 21:34:02

Recibir en ms el ping.
 
Llevo buscando casi media hora y no he encontrado como hacer ping y recibir el retraso en milisegundos para aplicaciones de juegos en linea. Por favor, si alguien me puede ayudar que lo diga.

Neftali [Germán.Estévez] 16-07-2008 09:04:44

No acabo de entender muy bien...
Revisa de todas formas los trucos que hay en la sección de trucos del Club. Uno de los más reciente es acerca de cómo hacer un ping.

rauros 16-07-2008 11:33:13

Si pero el ping de los trucos sale en c++, no en delphi. A ver, lo que quiero es hacer una barra(TGauge), y dependiendo del ping, se llena o vacía. Si se llena por completo se le aconseja no jugar porque va a tener mucho retraso. Lo que quiero es obtener el mismo numero que se obtiene desde consola de comandos(de windows) al escribir:
ping una_ip

Gracias de todos modos.

Neftali [Germán.Estévez] 16-07-2008 15:58:54

Perdón; No me fijé que era para Builder.
Otra opción es usar alguna de las librerías de TCP/Ip que hay; Eso te facilitará el trabajo. Indy, Synapse o ICS por nombrar alguna.

Aquí también puedes encontrar una solución.

Incluso aquí, lo que parece ser una solución muy similar a la del truco, pero en Delphi.

Aquí otra; Y si sigues buscando supongo que encontrarás más...

rauros 16-07-2008 16:50:01

Uf, los dos son los mismos y mira:

No funcionan con hostnames, solo con IP. Y yo tengo que rastear un nombre no-ip.org, para los que no lo sepan: redirecciona ip que no son estaticas.

Neftali [Germán.Estévez] 16-07-2008 17:21:14

Si no quieres instalar librerías externas, se me ocurren otras dos forma de hacerlos (digamos un poco más "cutres"), utilizando el comando PING de MS-DOS.

Puedes ejecutar el comando PING y volcar la respuesta a un fichero de texto.
Puedes ejecutar el comando PING y "volcar" la salida a un Memo.

De ambas cosas hay ejemplos por Internet (si no te funciona ya dirás).

En ambos casos tendrás un texto como este:
Código SQL [-]
Haciendo ping a www.no-ip.com [204.16.252.112] con 32 bytes de datos:

Respuesta desde 204.16.252.112: bytes=32 tiempo=217ms TTL=237
Respuesta desde 204.16.252.112: bytes=32 tiempo=219ms TTL=237
Respuesta desde 204.16.252.112: bytes=32 tiempo=218ms TTL=237
Respuesta desde 204.16.252.112: bytes=32 tiempo=219ms TTL=237

Estadísticas de ping para 204.16.252.112:
    Paquetes: enviados = 4, recibidos = 4, perdidos = 0 (0% perdidos),
Tiempos aproximados de recorrido redondo en milisegundos:
    mínimo = 217ms, máximo =  219ms, promedio =  218ms

Una vez obtenido se trata de "parsear" eso para obtener los tiempos (cosa que parece bastante simple).

rauros 16-07-2008 18:10:25

¿Como ejecuto ping una_ip /a:d > archivo.txt desde delphi? (Se ejecuta desde cmd)

egostar 16-07-2008 18:21:19

Cita:

Empezado por rauros (Mensaje 300842)
¿Como ejecuto ping una_ip /a:d > archivo.txt desde delphi? (Se ejecuta desde cmd)

Con WinExec(), busca su uso en la ayuda de Delphi o aquí en el foro......

Salud OS

rauros 16-07-2008 18:59:27

No funciona el comando:

WinExec(PChar('ping dragones-muertos.no-ip.org /a:d > c:\ping.txt'),SW_SHOWNORMAL);

egostar 16-07-2008 19:31:55

Efectivamente, eso no te va a funcionar, si lo ejecutas incluso desde INICIO, EJECUTAR tampoco te crea el archivo.

Definitivamente lo mejor sera que captures la salida del comando ping a un memo

http://www.q3.nu/trucomania/truco.cgi?320&esp

Salud OS

rauros 16-07-2008 19:33:57

Pues desde EJECUTAR me funciona PERFECTAMENTE. Pero probaré el truco.Gracias.

Neftali [Germán.Estévez] 17-07-2008 09:38:30

El truco que te ha pasado Egostar funciona perfectamente.
Básicamente es el mismo que yo te comenté. Una vez que obtengas la salida, basta con parsear las cadenas...

NOTA: Sigo pensando que un paquete de los comentados más arriba te daría una solución más fiable y profesional.


La franja horaria es GMT +2. Ahora son las 17:03: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