• epoll


    4. 关闭文件描述符

    关闭一个文件描述符会使它从epoll集中自动删除,前提是对应文件表项的引用计数递减为0

    此时,close(fd)等价于epoll_ctl(epfd, EPOLL_CTL_DEL, fd, &ev0);

    同理,对一个套接字描述符调用close(),若该套接字引用计数为0,则epoll将不再监听该套接字,该套接字上已触发的所有事件即刻删除



    3. 非阻塞connect


    3.1 RST

    非阻塞式connect收到rst时,触发的事件类型如下:

    CentOS 6.5

    LT:事件类型为EPOLLIN | EPOLLERR | EPOLLHUP,事件持续触发。EPOLLERR直到对套接字调用recv即消失;EPOLLIN | EPOLLHUP直到关闭套接字,否则一直存在

    ET:事件类型为EPOLLIN | EPOLLERR | EPOLLHUP,不管有无任何处理动作,事件只触发一次

    CentOS 7.2

    LT:事件类型为EPOLLIN | EPOLLOUT | EPOLLERR | EPOLLHUP,事件持续触发。EPOLLERR直到对套接字调用recv即消失;EPOLLIN |EPOLLOUT | EPOLLHUP直到关闭套接字,否则一直存在

    ET:事件类型为EPOLLIN | EPOLLOUT | EPOLLERR | EPOLLHUP,不管有无任何处理动作,事件只触发一次



    2. 连接中的套接字收到RST

    LT:事件类型为EPOLLIN | EPOLLERR | EPOLLHUP,事件持续触发。EPOLLERR直到对套接字调用recv即消失;EPOLLIN | EPOLLHUP直到关闭套接字,否则一直存在

    ET:事件类型为EPOLLIN | EPOLLERR | EPOLLHUP,不管有无任何处理动作,事件只触发一次



    1. 套接字收到FIN

    LT:事件类型为EPOLLIN,不管有没有对该套接字调用recv,事件持续触发,直到套接字被关闭

    ET:事件类型为EPOLLIN,不管有无任何处理动作,事件只触发一次,后面即没有任何动静

  • 相关阅读:
    链表
    线程池 ------ linux C实现
    thymeleaf 标签使用方法
    thymeleaf的配置
    exception processing, template error resolving template
    Thymeleaf模板表达式
    Mybatis:使用bean传值,当传入值为Null时,提示“无效的列类型”的解决办法
    windows 查看端口
    session与cookie的区别
    substr与substring的区别
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7475579.html
Copyright © 2020-2023  润新知