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 client exit with <ctrl-c>~~
|
||||||
- [x] ~~clean server exit with <ctrl-c>~~
|
- [x] ~~clean server exit with <ctrl-c>~~
|
||||||
- [x] ~~broadcasting messages to all client connected~~
|
- [x] ~~broadcasting messages to all client connected~~
|
||||||
- [ ] show message on server when client use <ctrl+c>
|
- [x] ~~show message on server when client use <ctrl+c>~~
|
||||||
- [ ] crash after 2 <ctrl+c> in client
|
- [x] ~~crash after 2 <ctrl+c> in client~~
|
||||||
- [ ] sending welcome message only at 1st client connection
|
- [ ] sending welcome message only at 1st client connection
|
||||||
- [ ] asking/using client-nickname
|
- [ ] asking/using client-nickname
|
||||||
- [ ] client freeze when sending empty string or spaces
|
- [ ] client freeze when sending empty string or spaces
|
||||||
|
|
|
@ -20,7 +20,7 @@ PORT = int(sys.argv[2])
|
||||||
BUFFER = 1024
|
BUFFER = 1024
|
||||||
|
|
||||||
MSG_SERVER_CONNECTED = "Serveur connecté @{}:{}"
|
MSG_SERVER_CONNECTED = "Serveur connecté @{}:{}"
|
||||||
MSG_CLOSE_CONNECTION = "\nConnexion vers [{}:{}] fermée"
|
MSG_CLOSE_CONNECTION = "Connexion vers [{}:{}] fermée"
|
||||||
|
|
||||||
def prompt():
|
def prompt():
|
||||||
sys.stdout.write('\n[me]:')
|
sys.stdout.write('\n[me]:')
|
||||||
|
@ -28,7 +28,10 @@ def prompt():
|
||||||
|
|
||||||
def handler(signum, frame):
|
def handler(signum, frame):
|
||||||
""" Catch <ctrl+c> signal for clean stop"""
|
""" 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)
|
sys.exit(0)
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, handler)
|
signal.signal(signal.SIGINT, handler)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user