3 # create a network of khashmir nodes
4 # usage: knet.py <num_nodes> <start_port> <ip_address>
6 from random import randrange
9 from twisted.internet import reactor
11 from khashmir import Khashmir
14 def __init__(self, size=0, startport=5555, localip='127.0.0.1'):
16 self.startport = startport
17 self.localip = localip
25 for i in range(self.num):
26 self.l.append(Khashmir('', self.startport + i, '/tmp/kh%s.db' % (self.startport + i)))
31 i.addContact(self.localip, self.l[randrange(0,self.num)].port)
32 i.addContact(self.localip, self.l[randrange(0,self.num)].port)
33 i.addContact(self.localip, self.l[randrange(0,self.num)].port)
40 i.findCloseNodes(self._done)
45 i.findCloseNodes(self._done)
51 i.listenport.stopListening()
55 for i in range(self.startport, self.startport+self.num):
57 os.unlink('/tmp/kh%s.db' % i)
63 if __name__ == "__main__":
64 n = Network(int(sys.argv[1]), int(sys.argv[2]), sys.argv[3])