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!
importjava.io.*;importjava.net.*;publicclassPseudoPing{publicstaticvoidmain(Stringargs[]){try{Sockett=newSocket(args[0],7);DataInputStreamdis=newDataInputStream(t.getInputStream());PrintStreamps=newPrintStream(t.getOutputStream());ps.println("Hello");Stringstr=dis.readLine();if(str.equals("Hello"))System.out.println("Alive!");elseSystem.out.println("Dead or echo port not responding");t.close();}catch(IOExceptione){e.printStackTrace();}}}
-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?
Rodrigues-J
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)
Rafael_Nunes
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
Rodrigues-J
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.
Rafael_Nunes
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.
Rodrigues-J
Tbm achei isso, mais não achei uma solução!!!
pode me dar um toque!?
Rafael_Nunes
java PseudoPing ipDoServidor
(Isso considerando que você tem um server socket escutando neste servidor)
Outra sugestão pra você testar um ping:
Stringip="127.0.0.1";Processp=Runtime.getRuntime().exec("ping -n 1 "+ip);intstatus=p.waitFor();System.out.println(ip+" is "+(status==0?"alive":"dead"));
muito obrigado e vlw pelas dicas do forum aliais que foi que foi que renomeou para Ping com java
vlw
Rodrigues-J
cara deu um erro:
InputStream in = p.getInputStream();
mais inpecificamente que objeto é esse p.getInputStream();
correainfo
Bom Rodrigues eu coloquei esse codigo aki e esta funcionando bom vou postar o codigo
packageping;importjava.io.IOException;importjava.io.InputStream;publicclassPing{/** * @param args */publicstaticvoidmain(String[]args){Stringip="Coloque o IP aki";Processp=null;try{p=Runtime.getRuntime().exec("ping -n 1 "+ip);}catch(IOExceptione){// TODO Auto-generated catch blocke.printStackTrace();}intstatus=0;try{status=p.waitFor();}catch(InterruptedExceptione){e.printStackTrace();}System.out.println(ip+" is "+(status==0?"alive":"dead"));InputStreamin=p.getInputStream();intline;bytesaida[]=newbyte[400];intcount=0;try{while((line=in.read())!=-1){saida[count]=(byte)line;count++;}}catch(IOExceptione){e.printStackTrace();}try{System.out.write(saida);}catch(IOExceptione){e.printStackTrace();}}}