예제 #1
0
        self.is_server = False
        self.translate_table = {}
        self.security_belt = []
        BaseRequestHandler.__init__(self, *args, **kwargs)
        
    def handle(self):
        self.address = self.server.server_address[0]
        data = self.request[0]
        socket = self.request[1]
        sender_address = self.client_address
        
        if "search" in data.split(" "):
            key = data.split(" ")[-1]
            if self.is_server:
                if key in self.translate_table:
                    socket.sendto(json.dumps(self.translate_table[key]), sender_address)
                elif self.security_belt:
                    #TODO: ask other servers
                    pass
                else:
                    socket.sendto(json.dumps([None]), sender_address)
            elif key == self.server.name:
                socket.sendto(json.dumps([self.address]), sender_address)

if __name__ == "__main__":
    HOST, PORT = "localhost", 5000

    server = ThreadingUDPServer((HOST, PORT), Node)
    server.name = "test"
    ip, port = server.server_address
    server.serve_forever()