socket发消息,用户态和内核态

统缓存就相当于内核态内存,就是图中的小箱子代码:

 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会把空白从用户态发送到内核态,然而内核态不会把空白发送出去,导致客户端卡主。

原文地址:https://www.cnblogs.com/ch2020/p/12523017.html