import java.net.Socket;
public class ThreadTest implements Runnable {
public static int portno = 1023;
public synchronized void checkSocket(int port) {
try {
Socket socket = new Socket("10.10.10.10", port);
System.out.println("port " + port + " is open!");
socket.close();
} catch (Exception e) {
//System.err.println("port " + port + " is closed!" + "Error:"+ e.getMessage());
}
}
public void run() {
portno = portno + 1;
checkSocket(portno);
if (portno < 9999) {
this.run();
}
}
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 1000; i++) {
new Thread(new ThreadTest()).start();
Thread.sleep(1);
}
}
}
此程序能较快的扫描出指定主机的哪些端口的Socket连接是否成功。同理,我们也可以对主机的IP地址、端口号同时扫描。