Programa Java (ping en pantalla)

Iniciado por cinek, 29 Noviembre 2013, 20:59 PM

0 Miembros y 3 Visitantes están viendo este tema.

cinek

Hola,

Soy nuevo en el tema de Java y me gustaria hacer un programita que haga pings infinitos dentro de una ventana.

egyware

Código (bash) [Seleccionar]

ping ip -t  'en windows
ping ip #en linux


Solo deberías usar la clase Runtime para invocar uno de esos dos comandos y empezar a leer la salida estándar de estos.


Aunque no entiendo para que....

trolleoatodos

Y como lees la salida ,¿con un pipe?

egyware

Oye quien nos trollea a todos
Miren revisen estás clases:
http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html
http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html

Ambas sirven para invocar comandos al bash o cmd lo que sea. La ultima representa el proceso en si y puedes obtener su salida de estándar (vamos revisen las clases ahí está todo) hasta enviarle datos por la entrada estándar.

Saludos!

trolleoatodos

Gracias egyware, hay un problema ,el metodo que interesa es getOutputStream,
pero como escribimos la salida del process en un File¿? ,gracias

egyware

La única forma que se me ocurre (y la unica forma que se) es copiar byte a byte (o un conjunto de ellos) mediante el FileOutputStream de un archivo.


hace tiempo escribi un post en mi blog de como no hacerlo, pero nunca escribí de como hacerlo bien. De todas formas sirve para empezar y funciona que es lo mejor.

Tip: Al final todos son Streams, da lo mismo la fuente.


Saludos!

trolleoatodos

Ya di con la solución ,es que había que usar getInputStream para recibir el output
del proceso, un poco confuso xD

egyware

Tiene sentido. Porque estás leyendo la salida del programa.