def main(): server = ThreadingUDPServer((HOST, PORT), ThreadedUDPRequestHandler) server_thread = threading.Thread(target=server.serve_forever) server_thread.daemon = True try: server_thread.start() logger = logging.getLogger("app") logger.info("Server started at {} port {}".format(HOST, PORT)) # 一个死循环 while True: time.sleep(100) except (KeyboardInterrupt, SystemExit): server.shutdown() server.server_close() exit()
class ReceiveDataUDPServer(threading.Thread): """Thread the runs the main UDP Server""" def __init__(self): super(ReceiveDataUDPServer, self).__init__() self.daemon = True # Setup threading UDP server host, port = "", 9767 self.server = ThreadingUDPServer((host, port), ReceiveDataUDPHandler) def run(self): """Run method""" self.server.serve_forever() def stop(self): """Stop the UDP server""" LOG.info('UDP server stop called') self.server.shutdown() while self.isAlive(): time.sleep(0.01) LOG.info('UDP server stopped')
stream_handler.setFormatter(formatter) file_handler.setFormatter(formatter) from logging import getLogger log = getLogger(__name__) log.addHandler(file_handler) # log.addHandler(stream_handler) # f**k = getLogger("{}_stream_logger".format(__name__)) # f**k.addHandler(stream_handler) from logging import INFO log.setLevel(INFO) # f**k.setLevel(INFO) intercept_domain, intercept_rr = [], [] with open(args.intercept) as zonefile: for zone in zonefile: intercept_domain.append(zone.split(" ")[0]) intercept_rr.append(zone) intercept_domain = list(set(intercept_domain)) server = ThreadingUDPServer((args.host, args.port), CleanDNSHandler) # server_thread = Thread(target=server.serve_forever) # server_thread.daemon = False try: # server_thread.start() server.serve_forever() except KeyboardInterrupt: server.shutdown() server.server_close()