public static void startClientNAT(String ip) throws Exception {
Random r = new Random(43L);
PeerDHT peer = new PeerBuilderDHT(new PeerBuilder(new Number160(r)).ports(clientPort).behindFirewall().start()).start();
PeerAddress bootStrapServer = new PeerAddress(Number160.ZERO, InetAddress.getByName(ip), serverPort, serverPort);
FutureDiscover fd = peer.peer().discover().peerAddress(bootStrapServer).start();
System.out.println("About to wait...");
fd.awaitUninterruptibly();
if (fd.isSuccess()) {
System.out.println("*** FOUND THAT MY OUTSIDE ADDRESS IS " + fd.peerAddress());
} else {
System.out.println("*** FAILED " + fd.failedReason());
}
bootStrapServer = fd.reporter();
FutureBootstrap bootstrap = peer.peer().bootstrap().peerAddress(bootStrapServer).start();
bootstrap.awaitUninterruptibly();
if (!bootstrap.isSuccess()) {
System.out.println("*** COULD NOT BOOTSTRAP!");
} else {