码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-06-25 23:00:25      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:监视   def   一个   .so   mask   ddr   callback   解码   判断   

 

 

 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多路复用多并发服务器模板

标签:监视   def   一个   .so   mask   ddr   callback   解码   判断   

原文地址:https://www.cnblogs.com/mxwei/p/9226508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!