Queria saber como faço para pingar em dois ou mas ips diferente ao mesmo tempo

1 resposta
T
import java.net.InetAddress;    
import java.net.UnknownHostException;    
import java.awt.Graphics;
import java.io.IOException;   
public class TestePing {  


	public static void main(String[] args) {  
		
		if (args.length == 1) {    
			InetAddress address = null;    
			try {    
				address = InetAddress.getByName(args[0]);    
			} catch (UnknownHostException e) {    
				System.out.println("Cannot lookup host "+args[0]);    
				return;    
				
			}    
			try {    
				if (address.isReachable(5000)) {    
					long nanos = 0;    
					long millis = 0;    
					long iterations = 0;    
					while (true) {    
						iterations++;    
						try {    
							nanos = System.nanoTime();    
							address.isReachable(500); // this invocation is the offender    
							nanos = System.nanoTime()-nanos;    
						} catch (IOException e) {    
							System.out.println("Failed to reach host");    
						}  
						
						millis = Math.round(nanos/Math.pow(10,6));    
						System.out.println("Resposta do IP: "+address.getHostAddress()+" com de tempo="+millis+" ms");    
					
						try {    
							Thread.sleep(Math.max(0, 1000-millis));    
						} catch (InterruptedException e) {    
							break;    
						}    
					}    
					System.out.println("Iterations: "+iterations);    
				} else {    
					System.out.println("Host "+address.getHostName()+" is not reachable even once.");    
				}    
			} catch (IOException e) {    
				System.out.println("Network error.");    
			}    
		} else {    
			System.out.println("Usage: java isReachableTest <host>");    
		}    
	}
}

1 Resposta

montroni

Thiago pelo que entendi você esta no caminho certo ja que você já esta conseguindo pingar em um endereço agora basta você colocar seus métodos em uma THREAD para que ambas possam fazer o processo em paralelo, existem vários exemplos aqui no fórum e também na API java. O processo é relativamente simples e você conseguirá implementar a sua necessidade.
Espero ter ajudado e estou sem nenhum exemplo fácil aqui senão postaria pra você dar uma olhada mas é algo como o exemplo abaixo da devmedia (http://www.devmedia.com.br/utilizando-threads-parte-1/4459):

class Escrita extends Thread {
        private int i;
        public void run() {
               while(true)
                       System.out.println(?Número :?+ i++);
        }
}

public class SimplesThread1 {
        public static void main(String[] args) {
               Escrita e = new Escrita();   //Cria o contexto de execução
               e.start();                             //Ativa a thread
        }
}

Leia mais em: Utilizando Threads - parte 1 http://www.devmedia.com.br/utilizando-threads-parte-1/4459#ixzz1yCiyDTkd
Criado 18 de junho de 2012
Ultima resposta 18 de jun. de 2012
Respostas 1
Participantes 2