python基础—socket套接字(2)
接上回:1.客户端和服务端不可能只发一句消息就完了,因此需要消息循环,用while Ture就可以。
2.客户端一般会直接关闭,服务端找不到客户端肯定会报错,因此需要捕捉异常。try except
3.一个客户端完了,还有下一个客户端进来,因此accept需要循环,组合起来就成了这样。
#服务端 import socket socket_obj = socket.socket() socket_obj.bind(('127.0.0.1', 9000)) socket_obj.listen(5) #链接循环 while True: fd, addr = socket_obj.accept() print(fd) #异常处理,客户端关闭。windows直接抛ConnectionResetError.linux不断打印空 try: #消息循环 while True: data = fd.recv(1024) if not data:#linux不断打印空,直接跳出循环 break print(data) except ConnectionResetError: print('客户端关闭') fd.close()
# 客户端 import socket, time socket_obj = socket.socket() socket_obj.connect(('127.0.0.1', 9000)) # 消息循环 while True: msg = input('请输入').strip() socket_obj.send(msg.encode('utf8')) socket_obj.close()

浙公网安备 33010602011771号