Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Server(object):
- def __init__(self, hostname, port):
- self.logger = logging.getLogger("server")
- init_logger(self.logger)
- self.hostname = hostname
- self.port = port
- def start(self):
- self.logger.debug("listening")
- self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.socket.bind((self.hostname, self.port))
- self.socket.listen(1)
- while True:
- conn, address = self.socket.accept()
- self.logger.debug("Got connection")
- process = multiprocessing.Process(target=handle, args=(conn, address))
- process.daemon = True
- process.start()
- self.logger.debug("Started process %r", process)
- if __name__ == "__main__":
- logger = logging.getLogger("main")
- init_logger(logger)
- import sys
- port = int(sys.argv[1])
- server = Server("0.0.0.0", port)
- try:
- logger.info("Listening")
- server.start()
- except:
- logger.exception("Unexpected exception")
- finally:
- logger.info("Shutting down")
- for process in multiprocessing.active_children():
- logger.info("Shutting down process %r", process)
- process.terminate()
- process.join()
- logger.info("All done")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement