Ejemplo n.º 1
0
    def StartServer(self, port):
        import socket
        host = '127.0.0.1'
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.bind((host, port))

        while True:
            try:
                message, address = s.recvfrom(8192)
                self.logger.debug("len %d" % len(message))
                query = Query()
                try:
                    query.ParseFromString(message)
                except:
                    self.logger.debug(traceback.format_exc())
                    self.RespQuery(1, 0, 0, [], address, s)
                    continue
                self.logger.debug("get content %s" % query.query)
                dialogs, terms = self.Search(query.query)
                for d in dialogs:
                    self.logger.debug("dialog %d weight %f" % (d[0], d[1]))

                for t in terms:
                    self.logger.debug(" terms %s" % t[0])

                self.RespQuery(0, dialogs, terms, address, s)
            except KeyboardInterrupt:
                break
            except:
                self.logger.error(traceback.format_exc())
Ejemplo n.º 2
0
    def StartServer(self, port):
        import socket
        host = "127.0.0.1"
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.bind((host, port))

        while True:
            try:
                message, address = s.recvfrom(8192)
                self.logger.debug("len %d" % len(message))
                query = Query()
                cmd = struct.unpack("!H", message[0:2])[0]
                message = message[2:]
                self.logger.debug("cmd %d" % cmd)
                if cmd == 1:
                    try:
                        query.ParseFromString(message)
                    except:
                        self.logger.debug("parse from string error")
                        self.logger.debug(traceback.format_exc())
                        self.RespGames(1, [], [], address, s)
                        return
                    self.logger.debug("get content %s" % query.query)
                    games, terms = self.Search(query.query)
                    for game in games:
                        self.logger.debug("game weight %f id %d" %
                                          (game[0], game[1]))
                    for term in terms:
                        self.logger.debug("term %s weight %f" %
                                          (term[0], term[1]))
                    self.RespGames(0, games, terms, address, s)
                elif cmd == 2:
                    gameId = struct.unpack("!I", message[0:4])[0]
                    self.AddOneGame(gameId)
                else:
                    self.logger.error("not find cmd %d" % cmd)
            except:
                self.logger.debug(traceback.format_exc())