Scanner de REDE

5 respostas
Smokerox

Olá pessoal, estou tendo problemas em um aplicativo que estou testando e gostaria que vocês me explicassem o erro do mesmo.
O objetivo do programa é verificar as portas abertas da minha rede local.

CODE:
import java.net.*;

public class PortScanner {

    public static void main(String args[]) {
        //Define o inicio e fim de portas
        int startPortRange = 25;
        int stopPortRange = 80;
        
        startPortRange = Integer.parseInt(args[0]);
        stopPortRange = Integer.parseInt(args[1]);



        for (int i = startPortRange; i <= stopPortRange; i++) {
            try {
                //Cria uma instância da classe Socket com o endereço IP
                Socket ServerSok = new Socket("127.0.0.1", i);
                //A variável "i" é o número da porta atual
                System.out.println("Port in use: " + i);

                ServerSok.close();
            } catch (Exception e) {
            }
            System.out.println("Port not in use: " + i);
        }
    }
}

Msg Error: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Scanner.PortScanner.main(PortScanner.java:17)
Java Result: 1

Alguem pode me explicar esse erro?
Grato.

5 Respostas

drsmachado

Como você está instanciando o objeto?
Através de linha de comando?

Perceba que há uma chamada dos args[0] e [1], mas o array pode estar vazio.

Outra coisa que não entendi é, se você tem as portas inicial e final, por que querer o que a classe recebe como parâmetro?

int startPortRange = 25;  
        int stopPortRange = 80;  
          
        startPortRange = Integer.parseInt(args[0]);  
        stopPortRange = Integer.parseInt(args[1]);
Smokerox

Sim, é através de linha de comando.

T

cole para nós sua linha de comando.

você sabe como funciona a variável args[] que vem como parâmetro no método main?

Smokerox

Desculpe amigo, não posso explicar muito sobre o código, pois ainda estou no básico do conhecimento.
Esse código logo cima foi uma pesquisa e que fiz e com pouco de conhecimento que tenho, mas a maior parte foi da pesquisa.
E como disse, esse código tem um problema do qual não sei o motivo. =/

Tenho outro aplicativo rodando, porem, esse é mais limpo/curto do que eu tenho rodando.

T

então tente comentar as linhas 10 e 11 e veja se resolve o seu problema

Criado 15 de setembro de 2011
Ultima resposta 16 de set. de 2011
Respostas 5
Participantes 3