Examples of PeerNAT


Examples of net.tomp2p.nat.PeerNAT

            return cachedPeers.get(id);
        }*/
        Peer peer = null;
        try {
            peer = new PeerBuilder(Number160.createHash(clientId)).ports(clientPort).behindFirewall().start();
            PeerNAT peerNAT = new PeerBuilderNAT(peer).start();
            PeerAddress masterNodeAddress = new PeerAddress(Number160.createHash(seedNodeId), seedNodeIP, seedNodePort,
                                                            seedNodePort);
            FutureDiscover futureDiscover = peer.discover().peerAddress(masterNodeAddress).start();
            FutureNAT futureNAT = peerNAT.startSetupPortforwarding(futureDiscover);
            futureNAT.awaitUninterruptibly();
            if (futureNAT.isSuccess()) {
                log.info("Automatic port forwarding is setup. Now we do a futureDiscover again. Address = " +
                                 futureNAT.peerAddress());
                futureDiscover = peer.discover().peerAddress(masterNodeAddress).start();
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

        }*/

        Peer peer = null;
        try {
            peer = new PeerBuilder(Number160.createHash(clientId)).ports(clientPort).behindFirewall().start();
            PeerNAT peerNAT = new PeerBuilderNAT(peer).start();
            PeerAddress masterNodeAddress = new PeerAddress(Number160.createHash(seedNodeId), seedNodeIP, seedNodePort,
                                                            seedNodePort);
            FutureDiscover futureDiscover = peer.discover().peerAddress(masterNodeAddress).start();
            FutureNAT futureNAT = peerNAT.startSetupPortforwarding(futureDiscover);
            FutureRelayNAT futureRelayNAT = peerNAT.startRelay(futureDiscover, futureNAT);
            futureRelayNAT.awaitUninterruptibly();
            if (futureRelayNAT.isSuccess()) {
                log.info("Bootstrap using relay was successful. Address = " + peer.peerAddress());
                //cachedPeers.put(id, peer);
                return peer;
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

    FutureBootstrap futureBootstrap = unreachable.bootstrap().peerAddress(peers[0].peerAddress()).start();
    futureBootstrap.awaitUninterruptibly();
    Assert.assertTrue(futureBootstrap.isSuccess());
   
    // setup relay
    PeerNAT uNat = new PeerBuilderNAT(unreachable).start();
    FutureRelayNAT frn = uNat.startRelay(master.peerAddress());
    frn.awaitUninterruptibly();
    Assert.assertTrue(frn.isSuccess());

    // Check if flags are set correctly
    Assert.assertTrue(unreachable.peerAddress().isRelayed());
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

     */
    for (int i = 0; i < relayPeers; i++) {
      Peer peer = createPeer(RELAY_START_PORT + i);
      // Note: Does not work if relay does not have a PeerDHT
      new PeerBuilderDHT(peer).storageLayer(new LoggingStorageLayer("RELAY", false)).start();
      PeerNAT peerNAT = new PeerBuilderNAT(peer).bufferConfiguration(bufferConfig).start();

      relays.add(peerNAT);
      LOG.debug("Relay peer {} started", i);
    }

    /**
     * Then init the mobile peers
     */
    for (int i = 0; i < mobilePeers; i++) {
      Peer peer = createPeer(MOBILE_START_PORT + i);
      bootstrap(peer);

      // start DHT capability
      new PeerBuilderDHT(peer).storageLayer(new LoggingStorageLayer("UNREACHABLE", true)).start();

      LOG.debug("Connecting to Relay now");
      Set<PeerAddress> relayAddresses = new HashSet<PeerAddress>(relayPeers);
      for (PeerNAT relay : relays) {
        relayAddresses.add(relay.peer().peerAddress());
      }

      PeerBuilderNAT builder = new PeerBuilderNAT(peer).peerMapUpdateInterval(PEER_MAP_UPDATE_INTERVAL_S)
          .relays(relayAddresses).relayType(RELAY_TYPE);
      if (RELAY_TYPE == RelayType.ANDROID) {
        GCMServerCredentials gcmCredentials = new GCMServerCredentials().senderAuthenticationKey(gcmKey)
            .senderId(gcmSenderId).registrationId(GCM_REGISTRATION_ID);
        builder.gcmServerCredentials(gcmCredentials);
      }

      PeerNAT peerNat = builder.start();
      FutureRelayNAT futureRelayNAT = peerNat.startRelay(relays.get(0).peer().peerAddress()).awaitUninterruptibly();
      if (!futureRelayNAT.isSuccess()) {
        LOG.error("Cannot connect to Relay(s). Reason: {}", futureRelayNAT.failedReason());
        return;
      }

View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

  private PeerAddress getRandomUnreachable() {
    Random rnd = new Random();
    if (mobiles.isEmpty()) {
      List<PeerNAT> relayCopy = new ArrayList<PeerNAT>(relays);
      while (!relayCopy.isEmpty()) {
        PeerNAT relay = relayCopy.remove(rnd.nextInt(relayCopy.size()));
        Set<PeerAddress> unreachablePeers = relay.relayRPC().unreachablePeers();
        Iterator<PeerAddress> iterator = unreachablePeers.iterator();
        if (iterator.hasNext()) {
          return iterator.next();
        }
      }
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

  }

  public static void startClientNAT(String ip) throws Exception {
    Random r = new Random(43L);
    Peer peer = new PeerBuilder(new Number160(r)).ports(PORT_CLIENT).behindFirewall().start();
    PeerNAT peerNAT = new PeerBuilderNAT(peer).start();
    PeerAddress pa = new PeerAddress(Number160.ZERO, InetAddress.getByName(ip), PORT_SERVER, PORT_SERVER);
   
    FutureDiscover fd = peer.discover().peerAddress(pa).start();
    FutureNAT fn = peerNAT.startSetupPortforwarding(fd);
    FutureRelayNAT frn = peerNAT.startRelay(fd, fn);
   
    frn.awaitUninterruptibly();
    if (fd.isSuccess()) {
      System.out.println("found that my outside address is " + fd.peerAddress());
    } else {
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

      FutureBootstrap futureBootstrap = unreachablePeer.bootstrap().peerAddress(peers[0].peerAddress()).start();
      futureBootstrap.awaitUninterruptibly();
      Assert.assertTrue(futureBootstrap.isSuccess());

      // setup relay
      PeerNAT uNat = new PeerBuilderNAT(unreachablePeer).relayType(relayType).gcmServerCredentials(gcmServerCredentials).start();
      FutureRelayNAT startRelay = uNat.startRelay(peers[0].peerAddress()).awaitUninterruptibly();
      Assert.assertTrue(startRelay.isSuccess());
      mockGCM(peers, uNat);

      // Check if flags are set correctly
      Assert.assertTrue(unreachablePeer.peerAddress().isRelayed());
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

      FutureBootstrap futureBootstrap = unreachablePeer.bootstrap().peerAddress(peers[0].peerAddress()).start();
      futureBootstrap.awaitUninterruptibly();
      Assert.assertTrue(futureBootstrap.isSuccess());

      // setup relay
      PeerNAT uNat = new PeerBuilderNAT(unreachablePeer).relayType(relayType).gcmServerCredentials(gcmServerCredentials).peerMapUpdateInterval(5).start();
      FutureRelayNAT startRelay = uNat.startRelay(peers[0].peerAddress()).awaitUninterruptibly();
      Assert.assertTrue(startRelay.isSuccess());
      mockGCM(peers, uNat);

      // find neighbors again
      futureBootstrap = unreachablePeer.bootstrap().peerAddress(peers[0].peerAddress()).start();
      futureBootstrap.awaitUninterruptibly();
      Assert.assertTrue(futureBootstrap.isSuccess());

      boolean otherPeersHaveRelay = false;

      for (Peer peer : peers) {
        if (peer.peerBean().peerMap().allOverflow().contains(unreachablePeer.peerAddress())) {
          for (PeerAddress pa : peer.peerBean().peerMap().allOverflow()) {
            if (pa.peerId().equals(unreachablePeer.peerID())) {
              if (pa.peerSocketAddresses().size() > 0) {
                otherPeersHaveRelay = true;
              }
              System.err.println("-->" + pa.peerSocketAddresses());
              System.err.println("relay=" + pa.isRelayed());
            }
          }
          System.err.println("check 1! " + peer.peerAddress());
        }

      }
      Assert.assertTrue(otherPeersHaveRelay);

      // wait for maintenance
      Thread.sleep(uNat.peerMapUpdateInterval() * 1000);

      boolean otherPeersMe = false;
      for (Peer peer : peers) {
        if (peer.peerBean().peerMap().all().contains(unreachablePeer.peerAddress())) {
          System.err.println("check 2! " + peer.peerAddress());
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

        new PeerBuilderNAT(peer).bufferConfiguration(androidConfig).start();
      }

      // Test setting up relay peers
      unreachablePeer1 = new PeerBuilder(Number160.createHash(rnd.nextInt())).ports(13337).start();
      PeerNAT uNat1 = new PeerBuilderNAT(unreachablePeer1).relayType(relayType).gcmServerCredentials(gcmServerCredentials).start();
      FutureRelayNAT fbn = uNat1.startRelay(master.peerAddress());
      fbn.awaitUninterruptibly();
      Assert.assertTrue(fbn.isSuccess());
      mockGCM(peers, uNat1);

           System.out.print("Send direct message to unreachable peer " + unreachablePeer1.peerAddress());
            final String request = "Hello ";
            final String response = "World!";
           
            final AtomicBoolean test1 = new AtomicBoolean(false);
            final AtomicBoolean test2 = new AtomicBoolean(false);
           
            //final Peer unr = unreachablePeer;
            unreachablePeer1.objectDataReply(new ObjectDataReply() {
                public Object reply(PeerAddress sender, Object obj) throws Exception {
                  test1.set(obj.equals(request));
                    Assert.assertEquals(request.toString(), request);
                    test2.set(sender.inetAddress().toString().contains("0.0.0.0"));
                    System.err.println("Got sender:"+sender);
                   
                    //this is too late here, so we cannot test this here
                    //Collection<PeerSocketAddress> list = new ArrayList<PeerSocketAddress>();
                    //list.add(new PeerSocketAddress(InetAddress.getByName("101.101.101.101"), 101, 101));
                    //unr.peerBean().serverPeerAddress(unr.peerBean().serverPeerAddress().changePeerSocketAddresses(list));
                   
                    return response;
                }
            });
           
           
            unreachablePeer2 = new PeerBuilder(Number160.createHash(rnd.nextInt())).ports(13338).start();
      PeerNAT uNat2 = new PeerBuilderNAT(unreachablePeer2).relayType(relayType).gcmServerCredentials(gcmServerCredentials).start();
      fbn = uNat2.startRelay(peers[42].peerAddress());

     
      fbn.awaitUninterruptibly();
      Assert.assertTrue(fbn.isSuccess());
      mockGCM(peers, uNat2);
View Full Code Here

Examples of net.tomp2p.nat.PeerNAT

        new PeerBuilderNAT(peer).bufferConfiguration(androidConfig).start();
      }

      // setup relay
      unreachablePeer = new PeerBuilder(Number160.createHash(rnd.nextInt())).ports(13337).start();
      PeerNAT uNat = new PeerBuilderNAT(unreachablePeer).relayType(relayType).gcmServerCredentials(gcmServerCredentials).start();
      FutureRelayNAT startRelay = uNat.startRelay(peers[0].peerAddress()).awaitUninterruptibly();
      Assert.assertTrue(startRelay.isSuccess());
      mockGCM(peers, uNat);

      System.out.print("Send direct message to unreachable peer");
      final String request = "Hello ";
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.