zoukankan      html  css  js  c++  java
  • epoll—IO多路复用

    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]
  • 相关阅读:
    02、Linux下sshd以及openssl的知识点
    01_1、光盘上CentOS 安装程序启动过程
    01_2、GRUB(Boot Loader)
    1.在CentOS 6.4安装python3
    02.python基础知识_02
    01.python基础知识_01
    python_opencv应用系列1:图片读写
    Python for else 循环控制
    python中print后面加逗号
    Python中def的用法
  • 原文地址:https://www.cnblogs.com/wangbaojun/p/10711852.html
Copyright © 2011-2022 走看看