diff --git a/server/__init__.py b/server/__init__.py index e69de29..2d8cee0 100644 --- a/server/__init__.py +++ b/server/__init__.py @@ -0,0 +1,4 @@ +import logging + +logging.basicConfig(level=logging.DEBUG, + format='[%(asctime)s] [%(levelname)s] [%(threadName)s] %(message)s') diff --git a/server/main.py b/server/main.py index 5a3df74..494f148 100644 --- a/server/main.py +++ b/server/main.py @@ -1,6 +1,6 @@ import logging +import multiprocessing import socket -import threading from server import handler @@ -21,17 +21,22 @@ clients = [] # Receiving / Listening Function def receive(): while True: - # Accept Connection - conn, address = server.accept() - logger.info(f"New connection from {address}") + try: + # Accept Connection + conn, address = server.accept() + logger.info(f"New connection from {address}") - client = handler.Client(conn, address, clients) - clients.append(client) - client.request_nickname() + client = handler.Client(conn, address, clients) + clients.append(client) + client.request_nickname() - # Start Handling Thread For Client - thread = threading.Thread(target=client.handle, name=client.id[:8]) - thread.start() + # Start Handling Thread For Client + thread = multiprocessing.Process(target=client.handle, name=client.id[:8]) + thread.start() + except KeyboardInterrupt: + logger.info('Server closed by user.') + except Exception as e: + logger.critical(e, exc_info=e) if __name__ == '__main__':