public void
run() {

    System.out.println("Catcher listening on port " + port_);
    Socket sock = null;
    done_ = false;
    try {
        ServerSocket ss = new ServerSocket(port_);
        ss.setSoTimeout(500);      // milliseconds of timeout
        for (int i=60; i>0; i--) {
            if (done_) {
                System.out.println("Catcher is DONE!");
                break;
            	}
            if (i%10 == 0)
                System.out.println("'Catch' countdown... " + i/10 + "...");
            try {
                sock = ss.accept();
                break;
	            }

            // Timeout falls to here:
            //
            catch (java.io.InterruptedIOException iioe) {
                continue;
	            }
	        }
	    }
    catch (Exception e) {
        e.printStackTrace();
    	}

    dialog_.gotCatch(sock);  // null denotes failure
	}