def __init__(self, node_size, host, sock): self._sock = sock self.max_node_size = node_size self.nodes = Queue.Queue(maxsize=node_size) self._host = host self._nid = random_node_id()
def __init__(self, host, port): self.ip = host self.port = port self.id = random_node_id() self.node = Node(self.id, unicode(host), port) self.rt = R_table(self.node) self.server = DHTServer((self.node.node_ip, self.node.node_port), DHTRequestHandler) self.server.dht = self
def find_node(self, address, node_id=None): sender_id = self.get_neighbor(node_id or random_node_id()) target = node_id or self._nid msg = { 't': random_chr(), 'y': 'q', 'q': 'find_node', 'a': {'id': sender_id, 'target': target} } self.send_message(msg, address) logger.info('Send FIND_NODE request to %s:%d.', *address)