PDA

Ver la Versión Completa : Recibir en ms el ping.


rauros
15-07-2008, 21:34:02
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í (http://delphi.about.com/od/internetintranet/l/aa081503a.htm)también puedes encontrar una solución.

Incluso aquí (http://www.ajpdsoft.com/modules.php?name=Content&pa=showpage&pid=87), lo que parece ser una solución muy similar a la del truco, pero en Delphi.

Aquí (http://www.delphipages.com/threads/thread.cfm?ID=25492&G=25490) 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:

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
¿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.