import java.io.*; import java.net.*; public class Test { public static void main(String args[]) throws Exception { int port = 6789; if(args.length < 1 || args.length > 2) { System.out.println("Usage: S [port]"); System.exit(1); } String host = args[0]; if(args.length == 2) port = Integer.parseInt(args[1]); InetAddress tmpDest = InetAddress.getByName(host); int i = 0; while(true) { i ++; try { failBigTime(i, tmpDest, port); } catch(Exception ex){} } } public static void failBigTime(int count, InetAddress tmpDest, int port) throws Exception { SocketAddress tmpBindAddr=new InetSocketAddress((InetAddress)null, 0); SocketAddress destAddr=new InetSocketAddress(tmpDest, port); Socket sock=new Socket(); sock.bind(tmpBindAddr); sock.setKeepAlive(true); sock.connect(destAddr, 10000); System.out.println("Connected : " + sock.getPort() + " to " + sock.getLocalPort() + " on try " + count); System.exit(0); } }