Fiz um simples portscanner em java, porem ele estava testando porta a porta e estava muito lento resolvi colocar em threads, so que nao sei se fiz alguma coisa errada mais acontece que chega na porta 500(funcionando em threads) ele para de testar, o Scan continua rodano so que parece q a socket nao conecta mais ! Vou postar o codigo !!
Classe Repete (Threads)
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Repete extends Thread {
String ark = "portas.txt";
String host;
int porta;
Repete(String host, int porta) {
this.host = host;
this.porta = porta;
}
public synchronized void run() {
try {
FileWriter escritor = new FileWriter(ark, true);
BufferedWriter buffer = new BufferedWriter(escritor);
//System.out.println("Trying: " + this.porta);
Socket s = new Socket(this.host, this.porta);
s.setSoTimeout(1);
buffer.write("Porta Aberta ==> "+ this.porta);
buffer.newLine();
buffer.flush();
buffer.close();
if (s.isConnected() == true) {
s.close();
}
}
catch (UnknownHostException ex) {
System.err.println(ex);
//break;
}
catch (IOException ex) {
}
}
}
e a Classe Main que chama Scan
public class Scan {
public static void main(String[] args) throws IOException {
if (args.length != 0 ) {
String host = args[0];
int ini = Integer.parseInt(args[1]);
int fina = Integer.parseInt(args[2]);
for (ini = Integer.parseInt(args[1]); ini < fina;ini++) { //aki eu quero q teste da porta 1 ate 65535, chega na 500 trava
Repete arroba = new Repete(host, ini);
synchronized (arroba) {
arroba.start();
}
}
}