3 # create a network of khashmir nodes
4 # usage: knet.py <num_nodes> <start_port> <ip_address>
6 from khashmir import Khashmir
7 from twisted.internet import reactor
8 from random import randrange
12 def __init__(self, size=0, startport=5555, localip='127.0.0.1'):
14 self.startport = startport
15 self.localip = localip
23 for i in range(self.num):
24 self.l.append(Khashmir('', self.startport + i, '/tmp/kh%s.db' % (self.startport + i)))
29 i.addContact(self.localip, self.l[randrange(0,self.num)].port)
30 i.addContact(self.localip, self.l[randrange(0,self.num)].port)
31 i.addContact(self.localip, self.l[randrange(0,self.num)].port)
38 i.findCloseNodes(self._done)
43 i.findCloseNodes(self._done)
49 i.listenport.stopListening()
53 for i in range(self.startport, self.startport+self.num):
55 os.unlink('/tmp/kh%s.db' % i)
61 if __name__ == "__main__":
62 n = Network(int(sys.argv[1]), int(sys.argv[2]), sys.argv[3])