Hi, here’s a simple port scanner I wrote today in Java.
I needed to see something on my server, perhaps you can find it useful. I would say its pretty fast, you can tweak the number of threads and timeouts to adjust to your server/connection. I did’t do much testing on it, just a few tweaks and I was happy with the speed of it.
Good for learning a bit of Java (Threads, Sockets)
import java.net.*;
import java.util.*;
import java.io.*;
/** 
 By Gubatron - 05-18-2005 
 Simple Fast Port Scanner
*/
public class PortScanner implements Runnable {
    int port;
    static int MAX_PORT = 65536;
    static int THREADS = 0;
    static int MAX_THREADS = 250;
    static int TIMEOUT = 50;
    static String TARGET = new String("www.yahoo.com");
    public PortScanner(int p) {
        this.port = p;
    };
    public synchronized void run() {
        THREADS++;
        try {
            Socket s = new Socket();
            s.connect(new InetSocketAddress(TARGET,this.port), 
                      TIMEOUT);
            System.out.println("Port " + this.port + " is open");
            s.close();
        } catch (Exception e) {
        }
        THREADS--;
    }
    public static void main(String[] args) {
        if (args.length > 0) {
            TARGET = args[0];
        }
        System.out.println("PortScanner By Gubatron (May-2005)");
        System.out.println("Scanning Ports On: " + TARGET + "n");
        for (int i=21; i <= MAX_PORT; i++) {
            if (PortScanner.THREADS > PortScanner.MAX_THREADS) {
                i--;
                continue;
            }
            PortScanner pokie = new PortScanner(i);
            Thread t = new Thread(pokie);
            t.start();
        }
    }
}