Ping com Java [era:Alguem pode me ajudar...]

Estou tentandofazer um programa para pingar, me passarão esse mais esta dando erro na linha sete não sei o que pode ser, alguem pode me ajudar!

 import java.io.*;
  import java.net.*;
  
  public class PseudoPing {
    public static void main(String args[]) {
      try {
        Socket t = new Socket(args[0], 7);
        DataInputStream dis = new DataInputStream(t.getInputStream());
        PrintStream ps = new PrintStream(t.getOutputStream());
        ps.println("Hello");
        String str = dis.readLine();
        if (str.equals("Hello"))
          System.out.println("Alive!") ;
        else
          System.out.println("Dead or echo port not responding");              
        t.close();
        }
      catch (IOException e) {
        e.printStackTrace();}
        }
       }

Olá
Qual é o erro?

Três considerações:

-Coloque seus códigos entre as tags [ code] [/ code] para uma melhor visibilidade e organização do fórum.

-Coloque títulos mais descritivos nos tópicos que criar, assim facilita um pouco a quem for lhe ajudar.

-Qual o erro que está lhe retornando?

Foi mal, faleu pelo toque mais é pq eu sou novo aqui no forum, mais vamo lá

cara esta dando esse erro!!

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at PseudoPing.main(PseudoPing.java:7)

Sem problemas, as dicas são somente para lhe alertar de algumas boas práticas aqui do fórum.

Em relação ao problema:
Você está passando uma String com o endereço do host na hora da execução?
Provavelmente ele não está achando o arg[0] na hora de instanciar o Socket

Cara nesse codigo que me passaram no local que tem
como etava …
String str = is.readLine();
como ficou depois que eu modifiquei…
String str = dis.readLine();

pois achei que estava relacionado ao objeto que se encontra no codigo.

Seu problema esta na hora de criar a instância do Socket na linha 7. Você precisa passar uma String com o endereço do host como argumento na hora da execução do programa.

Tbm achei isso, mais não achei uma solução!!!

pode me dar um toque!?

java PseudoPing ipDoServidor
(Isso considerando que você tem um server socket escutando neste servidor)

Outra sugestão pra você testar um ping:

String ip = "127.0.0.1";
Process p = Runtime.getRuntime().exec("ping -n 1 " + ip);
int status = p.waitFor();
System.out.println(ip + " is " + (status==0 ? "alive" : "dead"));

Cara valeu!!!

so uma coisa tem como ver o ping tipo:

no Ruindows
Resposta de 200.221.2.45:bytes=32 tempo=51ms Tempo de vida=51
Resposta de 200.221.2.45:bytes=32 tempo=51ms Tempo de vida=51
Resposta de 200.221.2.45:bytes=32 tempo=52ms Tempo de vida=51

Se tiver melhor ainda!!!

De uma olhada na documentação da classe process, ela retorna pra você a saída do console, mais ou menos dá pra fazer:

[code]InputStream in = p.getInputStream();
int line;
byte saida[] = new byte[400];
int count = 0;

while((line = in.read()) != -1){
saida[count] = (byte)line;
count++;
}

System.out.write(saida);

[/code]

Vlw, Brother…

vou tentar aqui

…Fui…

muito obrigado e vlw pelas dicas do forum aliais que foi que foi que renomeou para Ping com java

vlw

cara deu um erro:

InputStream in = p.getInputStream();

mais inpecificamente que objeto é esse p.getInputStream();

Bom Rodrigues eu coloquei esse codigo aki e esta funcionando bom vou postar o codigo

package ping;

import java.io.IOException;
import java.io.InputStream;

public class Ping {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		 String ip = "Coloque o IP aki";
		    Process p = null;
			try {
				p = Runtime.getRuntime().exec("ping -n 1 " + ip);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		    int status = 0;
			try {
				status = p.waitFor();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		    System.out.println(ip + " is " + (status==0 ? "alive" : "dead"));
		    
		    InputStream in = p.getInputStream();
		    int line;
		    byte saida[] = new byte[400];
		    int count = 0;
		    		
		      try {
				while((line = in.read()) != -1){
				      saida[count] = (byte)line;
				      count++;
				  }
			} catch (IOException e) {
				e.printStackTrace();
			}
		    
		    try {
				System.out.write(saida);
			} catch (IOException e) {
				e.printStackTrace();
			}
	}
}

Espero ter ajudo

Qualquer coisa post ae