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

posted @ 2020-03-19 11:35  竹石2020  阅读(817)  评论(0编辑  收藏  举报