Java repetir método

Tengo un método que realiza un ping a una dirección IP pero sólo lo hace una vez,
lo que se quiere hacer es que el método se repita varias veces mientras la ventana
Esta activa.

1 Respuesta

Respuesta
1
Necesitaría que me enseñaras el código que has escrito para ello, ¿puedes copiarlo?
Código
public void Process() {
String ip = "192.168.1.118";
String ping = "ping";
String pingCmd = "ping " + ip ;
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(pingCmd);
BufferedReader in = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
pingResult = inputLine;
}
} catch (IOException e) {
System.out.println(e);
}
Ya le había colocado "-t", pero se queda ejecutado el proceso
como un bucle infinito.
Gracias
¿Por qué no haces lo siguiente?
Metes un nuevo método que, mediante un while o un for, llame a este. Y sustituyes la llamada a este por una llamada al nuevo.
El método podría ser como sigue:
piblic void multiplePings(){
  int vecesQueSeRepite=100;
  for (int i=0;i<vecesQueSeRepite;i++){
    public void Process();
  }
}
Si lo que quieres es que se ejecute indefinidamente, una y otra vez, cada periodo de tiempo, quedando en background mientras el programa java principal hace otras cosas, quizás entonces necesites usar hilos de ejecución (thread) y configurarlo para que se ejecute cada por tiempo. Aunque creo que eso es demasiado complejo para lo que estás haciendo.
Bien me parece bien pero la idea es que sea constante hasta que
se le de click en cerrar y termine el proceso, porque se desea saber cuando el
servidor se caiga es como si hiciera un ping IP -T peor que no se quede infinito
Gracias
A ver si me entero...
Tu quieres que se ejecute siempre, una vez tras otra ¿no? Hasta que finalices el programa java.
Entonces, no pongas un for, pon un "while (true)" aunque te advierto una cosa:
1.- La única forma de terminarlo es, terminar el programa java (pulsar Ctr+c, esc o darle a la por a la pantalla de comandos de msdos o como sea que lo estés ejecutando.
2.- Hacer ping sin parar a un servidor, una vez tras otra, no es la mejor idea para comprobar si se ha caído o no, deberías meterle un delay o algo que hiciera que esperara un tiempo antes de volverlo a ejecutar, por ejemplo, 5 segundos.
Si quieres hacer esto de manera más eficiente y sin sobrecargar demasiado la máquina virtual de java, prueba a usar hilos, lo que harías sería lo siguiente:
-El main ejecuta el hilo.
-El hilo llama a tu proceso procces().
-El main hace un sleep al hilo de unos segundos antes de volver a lanzarlo.
te dejo un enlace sobre hilos que puede venirte bien: http://sunsite.dcc.uchile.cl/java/docs/JavaTut/Cap7/thread.html
El método quedaría algo como esto:
public void multiplePings(){ 
int segundos=100;
  while(true){
    Process();
   Thread.sleep (segundos*1000)
  }
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas