Package net.tomp2p.examples

Source Code of net.tomp2p.examples.ExampleSend

package net.tomp2p.examples;

import net.tomp2p.dht.FutureSend;
import net.tomp2p.dht.PeerDHT;
import net.tomp2p.p2p.RequestP2PConfiguration;
import net.tomp2p.peers.Number160;
import net.tomp2p.peers.PeerAddress;
import net.tomp2p.rpc.ObjectDataReply;

public class ExampleSend {
  public static void main(String[] args) throws Exception {
    PeerDHT master = null;
    try {
      PeerDHT[] peers = ExampleUtils.createAndAttachPeersDHT(100, 4001);
      ExampleUtils.bootstrap(peers);
      master = peers[0];
      setupReplyHandler(peers);
      System.err.println(" ---- query 3 - ~6 close peers -----");
      exampleSendRedundant(peers[34]);
      System.err.println(" ---- now we want to query only the closest one -----");
      exampleSendOne(peers[14]);
      Thread.sleep(60000);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      master.shutdown();
    }
  }

  private static void exampleSendOne(PeerDHT peer) {
    RequestP2PConfiguration requestP2PConfiguration = new RequestP2PConfiguration(1, 10, 0);
    FutureSend futureSend = peer.send(Number160.createHash("key")).object("hello")
            .requestP2PConfiguration(requestP2PConfiguration).start();
    futureSend.awaitUninterruptibly();
    for (Object object : futureSend.rawDirectData2().values()) {
      System.err.println("got:" + object);
    }
  }

  private static void exampleSendRedundant(PeerDHT peer) {
    FutureSend futureSend = peer.send(Number160.createHash("key")).object("hello").start();
    futureSend.awaitUninterruptibly();
    for (Object object : futureSend.rawDirectData2().values()) {
      System.err.println("got:" + object);
    }

  }

  private static void setupReplyHandler(PeerDHT[] peers) {
    for (final PeerDHT peer : peers) {
      peer.peer().objectDataReply(new ObjectDataReply() {
        @Override
        public Object reply(PeerAddress sender, Object request) throws Exception {
          System.err.println("I'm " + peer.peerID() + " and I just got the message [" + request
                  + "] from " + sender.peerId());
          return "world";
        }
      });
    }
  }
}
TOP

Related Classes of net.tomp2p.examples.ExampleSend

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.