day28
1. 客户端异常退出 # 当客户端非正常断开连接,服务端是没有断开连接的,这时候通道关闭,接收不到东西,就会报错. # (1)针对window:用try..except..捕获异常,跳出循环 # (2)针对linux:ret= conn.recv(1024)会返回空字符串,直接用len(ret)来判断跳出循环. # ------------------------- 例1 --------------------------------- # ### 服务端 ### import socket server = socket.socket() # 创建服务端对象 server.bind(('192.168.3.21', 8000)) # 绑定ip和端口 server.listen(5) # 后面可以排队客户端数目 while 1: print("server is working") conn, addr = server.accept() # 阻塞:永远等待连接 # 字节类型 while 1: data = conn.recv(1024) # 阻塞:永远等待接收 if data == b'exit': break response = data + b' SB' conn.send(response) conn.close() # 与客户端断开连接(放开那把伞) # ###