系统缓存就相当于内核态内存,就是图中的小箱子代码:
1 from socket import * 2 3 tcp_server = socket(AF_INET, SOCK_STREAM) 4 tcp_server.bind(('127.0.0.1', 8080)) 5 tcp_server.listen(125) 6 conn, addr = tcp_server.accept() # 服务端阻塞 7 print('双向连接是', conn) 8 print('客户端地址', addr) 9 while True: 10 data = conn.recv(1204) 11 print('客户端发来的消息是', data.decode()) 12 conn.send(data.upper()) 13 conn.close() 14 tcp_server.close()
如果发送的是空白,那么socket会把空白从用户态发送到内核态,然而内核态不会把空白发送出去,导致客户端卡主。