IO多路复用多并发服务器模板

Posted mxwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO多路复用多并发服务器模板相关的知识,希望对你有一定的参考价值。

 

 

 1 import socket
 2 import selectors    # IO多路复用选择器
 3 
 4 epoll_selector = selectors.EpollSelector()  # 实例化选择器
 5 server = socket.socket()    # 实例化套接字
 6 server.bind((‘‘, 6666)) # 地址和端口
 7 server.listen(100)  #侦听数
 8 
 9 def recv(conn): # 数据处理
10     recv_data = conn.recv(1024)
11     if recv_data:   # 判断是否存在
12         res = recv_data.decode()    # 解码接收到的数据
13         print(res)
14         conn.send(recv_data)    # 发送数据
15     else:
16         epoll_selector.unregister(conn) # 解除监视,关闭监控
17         conn.close()    # 关闭连接
18 
19 def accept(server): # 连接处理
20     conn, addr = server.accept() # 生成一个对等连接套接字
21 
22     epoll_selector.register(conn, selectors.EVENT_READ, recv)   # 注册毁掉函数
23 
24 
25 epoll_selector.register(server, selectors.EVENT_READ, accept) # 注册回调函数
26 
27 
28 while True:
29     events = epoll_selector.select()    # 查询事件
30 
31     for key, mask in events:    # 拆包
32         callback = key.data
33         sock = key.fileobj
34         callback(sock)

 

以上是关于IO多路复用多并发服务器模板的主要内容,如果未能解决你的问题,请参考以下文章

7-4 并发编程IO多路复用常见考题

7-4 并发编程IO多路复用常见考题

IO多路复用简介

nginx 多进程 + io多路复用 实现高并发

Python-IO多路复用

python中的IO多路复用