zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    人月神话阅读笔记之二
    第二阶段:团队开发Fooks第三天
    第二阶段:团队开发Fooks第二天
    第二阶段:团队开发Fooks第一天
    第十三周进度总结
    人月神话阅读笔记之一
    第一阶段意见评论
    拓扑排序
    欧拉回路
    矩阵优化
  • 原文地址:https://www.cnblogs.com/mxwei/p/9226508.html
Copyright © 2011-2022 走看看