Пример #1
0
 def run(self):
   global connection_list
   while not instance.has_exited:
     for node in instance.nodes:
       if node.name == instance.name:
         continue
       if node.port == '0':
         continue
       dest_name = node.name
       host = node.ip
       port = int(node.port) 
       if dest_name not in connection_list:
         print '[try to connect to', dest_name, '...]'
         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         try:
           s.connect((host, port)) #blocking
           instance.gmutex.acquire() 
           connection_list[dest_name]=s
           gui.update_meeting_info()
           instance.gmutex.release()
           print '[Connected!]', dest_name
         except:
           print 'Exception! Cannot connect to', dest_name
           time.sleep(1)
           pass
     time.sleep(instance.CONN_RETRY_SECS)
Пример #2
0
def remove_peer(name):
  if instance.initialized == False:
    return
  global connection_list
  if name in connection_list:
    print "## Removing peer: " + name
    del connection_list[name]
  if name in instance.heartbeat_time:
    del instance.heartbeat_time[name]
  for index, node in enumerate(instance.nodes):
    if node.name == name:
      instance.nodes[index] = instance.nodes[index]._replace(ip = '0.0.0.0')
      instance.nodes[index] = instance.nodes[index]._replace(port = '0')
      break
  gui.update_meeting_info()