epoll触发事件的分析

本文详细分析了epoll在Linux网络编程中的各种事件触发情况,包括EPOLLIN、EPOLLOUT、EPOLLRDHUP等状态的意义,以及不同操作如shutdown、close对套接字事件的影响。在水平触发和边沿触发模式下,epoll事件的处理方式也有所区别,对于开发者优化并发处理至关重要。
摘要由CSDN通过智能技术生成
我们知道,可以将套接字放入到epoll中监听,当套接字上有事件发生时,epoll就会通知我们。epoll机制可以监听套接字上的以下6种事件:
  • EPOLLIN:套接字可读
  • EPOLLOUT:套接字可写
  • EPOLLRDHUP:对端关闭了套接字,或者对端关闭了写
  • EPOLLPRI:套接字上有紧急数据到达
  • EPOLLHUP:对端挂断了套接字
那么,什么情况下会在套接字上触发以上6种事件呢?当我们监听套接字上的EPOLLIN + EPOLLRDHUP事件时,总结如下:
  • 监听套接字上有连接到达时,监听套接字上将触发EPOLLIN(可读)事件;
  • 连接套接字上有数据到达时,套接字上将触发EPOLLIN(可读)事件;
  • 如果对端发送数据后立即关闭套接字或shutdown写,则本端在收到最后一个数据包时会触发EPOLLIN+EPOLLRDHUP事件;
  • 对端按ctr+c杀死进程时,本端的套接字上将触发EPOLLIN+EPOLLRDHUP事件;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值