IO多路复用
宇龍_
有些白嫖党连个赞都不点甚至直接抄走了说原创,新发布的都写到专栏里吧,哎。
私聊给群号,可进Q群咨询问题。
展开
-
使用epoll的时候是否要将socket设置成非阻塞?
epoll有两种模式,分别是水平触发(ET模式)和边沿触发(LT)关于二者的区别,这里举一个例子,A向B一次发送了4K的数据,此时B已经调用了的epoll_wait会返回,这时假设B只读了2K的数据,还剩余2K未读。此时水平触发和边沿触发的不同点就体现出来了,再次调用epoll_wait后,边沿触发模式下不会返回,而水平触发则会返回。也就是说边沿触发只触发一次,需要程序一次读完所有数据,一般在read/recv/accept的外层需要加一个循环,直到没有数据,但是当某次循环下数据恰好读完后再调用rea原创 2021-09-27 16:33:56 · 753 阅读 · 2 评论 -
epoll_wait被signal信号中断时的处理
在epoll_wait阻塞期间,signal信号会打断该阻塞,使其返回-1并将errno设置成EINTR,此时可以在主循环中判断并处理该情况,一般continue即可!原创 2021-07-29 20:36:12 · 979 阅读 · 0 评论