epoll—IO多路复用
2019-04-15 17:31
176 查看
1.在socket.listen()后创一个epoll对象 epoll = select.epoll()2.将server_socket注册到epoll中 epoll.register( )3. conn_dict = dict() 用来保存新的socket对象和对应的fd和关系 addr_dict = dict()用来保存 新的socket对象的ip端口和对应的fd和关系3.while True:5.epoll_list = epoll.poll() 创建一个epoll列表 epoll_list中是【(套接字的文件描述符, 状态),(···,····),(····,·····),】
4.遍历epoll列表 用两个变量fd,evevt接受 。5.判断 if fd == server.socket.fileno(): 说明是新连接 把新的套接字注册到epoll中 epoll.register() conn_dict[new_socket.fileno()] = new_socket addr_dict[new_socket.fileno()] = new_addr
if even == select.EPOLLIN: 说明是连接的客户端发来消息了 接受处理就好 如果客户机关闭了连接 : epoll.unregister(fd) 从epoll中去掉这和套接字 conn_dict[fd].close() 关闭本次连接 del conn_dict[fd]
del addr_dict[fd]
来自为知笔记(Wiz)
4.遍历epoll列表 用两个变量fd,evevt接受 。5.判断 if fd == server.socket.fileno(): 说明是新连接 把新的套接字注册到epoll中 epoll.register() conn_dict[new_socket.fileno()] = new_socket addr_dict[new_socket.fileno()] = new_addr
if even == select.EPOLLIN: 说明是连接的客户端发来消息了 接受处理就好 如果客户机关闭了连接 : epoll.unregister(fd) 从epoll中去掉这和套接字 conn_dict[fd].close() 关闭本次连接 del conn_dict[fd]
del addr_dict[fd]
来自为知笔记(Wiz)
相关文章推荐
- Nginx-入门
- 课堂练习
- 启动eclipse报错,找不到jre路径没有java环境
- &(int*)0 / &((type*)0)->member 记录一下
- intellij ide 好用的插件
- java引用类型传值还是地址问题
- 联想X3250M6服务器做raid1磁盘阵列
- mac安装gradle,配置IDEA
- Postman工具的安装使用
- 常用的高防有哪几类?主要的区别是什么?
- yum安装与源码安装比较
- nginx教程
- 设计模式21-解释器模式
- JS 数组及元素使用方法
- 数据质量问题的质量是什么意思,质量问题来源于哪里?
- BeanUtils.copyProperties
- angular中创建服务和请求http数据的一个流程
- 云计算linux运维课程学习,云计算面试题库
- 深度优先搜索(DFS)-迷宫问题
- pytorch 加载自己的数据集