public static void main(String[] args) throws IOException { if (args.length == 0) { System.out.println("Usage:"); System.out.println(" {sourceHost}@{sourcePort} {destinationHost}@{destinationPort}"); System.exit(0); } PyroSelector listenHub = new PyroSelector(); PyroSelector trafficHub = new PyroSelector(); GatewayTwoSelectors gateway = new GatewayTwoSelectors(listenHub, trafficHub); for (int i = 0; i < args.length; i += 2) { String srcArg = args[i + 0]; String dstArg = args[i + 1]; String srcHost = Text.before(srcArg, '@'); String dstHost = Text.before(dstArg, '@'); int srcPort = Integer.parseInt(Text.after(srcArg, '@')); int dstPort = Integer.parseInt(Text.after(dstArg, '@')); InetSocketAddress src = new InetSocketAddress(srcHost, srcPort); InetSocketAddress dst = new InetSocketAddress(dstHost, dstPort); gateway.addBridge(src, dst); } listenHub.spawnNetworkThread("listen"); trafficHub.spawnNetworkThread("traffic"); }