您的位置:首页 > 其它

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)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: