diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2017-03-30 15:21:31 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2017-03-30 15:21:31 +0300 |
| commit | 439cd4fd5bffb9b5e74cf2840a185688dd275d99 (patch) | |
| tree | 2bc43bda9a7064d9549114ff5a33fbb7b422c4a7 /server.py | |
| parent | 3a5af6144fcd26d5d462e8c478dcbe98956364a0 (diff) | |
Add graceful exit
Diffstat (limited to 'server.py')
| -rwxr-xr-x | server.py | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -2,16 +2,28 @@ import socket import threading +import signal +import sys from functools import partial from datetime import datetime HOST = "0.0.0.0" PORT = 5000 DEBUG = True +running = True + def debug(string): if (DEBUG): print("{} DEBUG: {}".format(datetime.now(), string)) +def signal_handler(signal, frame): + print("Closing sockets and shutting down...") + global running + running = False + sys.exit(0) + +signal.signal(signal.SIGINT, signal_handler) + def parse_message(text): rows = text.split('\n') if (len(rows) < 3): @@ -52,7 +64,7 @@ def keep_connection(conn, addr, connections): debug("Connection from: {}".format(addr)) broadcast_fun = partial(broadcast, recipients=connections) - while True: + while running: data = conn.recv(1024).decode() if not data: @@ -77,9 +89,9 @@ def main(): connections = [] threads = [] sock.listen(1) - running = True print("Chat server running on {}:{}".format(HOST, PORT)) + print("Press CTRL-C to quit") while running: conn, addr = sock.accept() |
