예제 #1
0
 def unit_Start(self, session_id):
     flag = False
     area_session_id = None
     area_ip = None
     iplist = []
     for s_id, session in self.sockSession_map:
         if session.addr[0] in self.servertype_dict:
             if self.servertype_dict[session.addr[0]] == 'area':
                 flag = True
                 area_session_id = s_id
                 area_ip = session.addr[0]
                 self.sockSession_map[session_id].start(area_ip,self.ipserver_dict[area_ip])
                 iplist.append(self.Server.addr[0])
     if flag:
         for s_id, session in self.sockSession_map:
             if s_id != area_session_id and s_id != session_id:
                 self.sockSession_map[s_id].initData(area_ip,self.ipserver_dict[area_ip])
                 iplist.append(session.addr[0])
     else:
         for s_id, session in self.sockSession_map:
             self.sockSession_map[s_id].initData(self.Server.addr[0],self.ipserver_dict[self.Server.addr[0]])
             iplist.append(session.addr[0])
             
     for node,unit in self.nodeunit_map:
         if unit == self.ipserver_dict[self.Server.addr[0]]:
             if self.serverip_dict[node] not in iplist:
                 session = sock_sessionA(3)
                 self.sockSession_map[id(session)] = session
                 self.sockSession_map[id(session)].init_data(self.Server.addr[0])
     self.sockSession_map[session_id].start()
예제 #2
0
 def Start(self):
     if self._para.Server_Type() == 'area':
         pass
     elif self.self._para.Server_Type() == 'unit':
         session = sock_sessionA(self.self._para)
         self.name_sockSesssion[self._para.Server_Name()] = session
         threading.Timer(5,self.unit_Start,id(session)) 
     elif self.self._para.Server_Type() == 'node':
         pass
     self.Server.run()
     threading.Thread(target=asyncore.loop).start()