diff --git a/03.网络编程与并发/01.网络编程基础.md b/03.网络编程与并发/01.网络编程基础.md index a72bd71..d3e71b8 100644 --- a/03.网络编程与并发/01.网络编程基础.md +++ b/03.网络编程与并发/01.网络编程基础.md @@ -215,6 +215,7 @@ import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) phone.bind(('127.0.0.1',8080)) +phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) phone.listen(5) while 1: @@ -222,16 +223,16 @@ while 1: print(conn,client_addr,sep='\n') while 1: - try: + if conn: from_client_data = conn.recv(1024) + if len(from_client_data) == 0 or from_client_data.decode('utf-8') == 'q': + # 如果客户端返回为空或者q,说明已经断开 + break print(from_client_data.decode('utf-8')) - conn.send(from_client_data.upper()) - except: + else: break -conn.close() -phone.close() ``` 客户端 @@ -244,9 +245,11 @@ phone.connect(('127.0.0.1',8080)) while 1: client_data = input('>>> ') + if len(client_data.strip()) == 0: + continue phone.send(client_data.encode('utf-8')) - if client_data == 'q':break - + if client_data == 'q': + break from_server_data = phone.recv(1024) print(from_server_data.decode('utf-8'))