Java Kademlia DHT引导

时间:2018-11-06 19:15:05

标签: java android networking dht kademlia

Kademlia Implementation in Java 从这里得到帮助。 git repo:https://github.com/JoshuaKissoon/Kademlia

我正在端口5000(相同ip)上运行一个节点,我要将其下一个节点引导至该节点。我已经尝试了上述问题的解决方案,但没有成功。

错误:

  

创建的节点Kad 1:4153463435363738393437353834353637353637       java.net.BindException:无法分配请求的地址:数据报发送失败       在java.net.DualStackPlainDatagramSocketImpl.socketSend(本机方法)       在java.net.DualStackPlainDatagramSocketImpl.send(未知来源)       在java.net.DatagramSocket.send处(未知源)       在kademlia.KadServer.sendMessage(KadServer.java:185)       在kademlia.KadServer.sendMessage(KadServer.java:138)       在kademlia.operation.ConnectOperation.execute(ConnectOperation.java:58)       在kademlia.JKademliaNode.bootstrap(JKademliaNode.java:257)       在Script.main(Script.java:19)

import java.io.IOException;
import java.net.InetAddress;
import kademlia.JKademliaNode;
import kademlia.node.KademliaId;
import kademlia.node.Node;

public class Script{
    public static void main(String[] args){
        try{
            /* Setting up 2 Kad networks */
            JKademliaNode kad1 = new JKademliaNode("abc", new KademliaId("ASF45678947584567567"),5005);
            System.out.println("Created Node Kad 1: " + kad1.getNode().getNodeId());

            KademliaId id = new KademliaId(); 
            InetAddress ip =InetAddress.getByName("0.0.0.0");
            Node kad2 = new Node(id,ip,5000);
            kad1.bootstrap(kad2);

        System.out.println("Kad 1: " + kad1.getNode().getNodeId() + " Routing Table: ");
        System.out.println(kad1.getRoutingTable());    

    }
    catch (IOException e){
        e.printStackTrace();
    }
    System.out.println("Ended everything!");
}
}

如果仅知道另一个节点的IP和端口,如何引导一个节点!我已经看到kademlia的muller在brian的python实现中,而我对Java还是陌生的,但这是非常不同的。  另外,我需要做哪些更改才能使其在android上运行?

0 个答案:

没有答案