Improve <ctrl+c> interruption
Add clean server disconnection with «quit» keyword Fix this 2 bugs: - show message on server when client use <ctrl+c> - crash after 2 <ctrl+c> in client
This commit is contained in:
parent
8951d7dcd5
commit
c863a2c727
|
@ -4,8 +4,8 @@
|
|||
- [x] ~~clean client exit with <ctrl-c>~~
|
||||
- [x] ~~clean server exit with <ctrl-c>~~
|
||||
- [x] ~~broadcasting messages to all client connected~~
|
||||
- [ ] show message on server when client use <ctrl+c>
|
||||
- [ ] crash after 2 <ctrl+c> in client
|
||||
- [x] ~~show message on server when client use <ctrl+c>~~
|
||||
- [x] ~~crash after 2 <ctrl+c> in client~~
|
||||
- [ ] sending welcome message only at 1st client connection
|
||||
- [ ] asking/using client-nickname
|
||||
- [ ] client freeze when sending empty string or spaces
|
||||
|
|
|
@ -20,7 +20,7 @@ PORT = int(sys.argv[2])
|
|||
BUFFER = 1024
|
||||
|
||||
MSG_SERVER_CONNECTED = "Serveur connecté @{}:{}"
|
||||
MSG_CLOSE_CONNECTION = "\nConnexion vers [{}:{}] fermée"
|
||||
MSG_CLOSE_CONNECTION = "Connexion vers [{}:{}] fermée"
|
||||
|
||||
def prompt():
|
||||
sys.stdout.write('\n[me]:')
|
||||
|
@ -28,7 +28,10 @@ def prompt():
|
|||
|
||||
def handler(signum, frame):
|
||||
""" Catch <ctrl+c> signal for clean stop"""
|
||||
print(MSG_CLOSE_CONNECTION.format(HOST, PORT))
|
||||
print()
|
||||
print(MSG_CLOSE_CONNECTION.format(*(SERVER_CONNECTION.getpeername())))
|
||||
SERVER_CONNECTION.send(b"QUIT")
|
||||
SERVER_CONNECTION.close()
|
||||
sys.exit(0)
|
||||
|
||||
signal.signal(signal.SIGINT, handler)
|
||||
|
|
Loading…
Reference in New Issue