epoll et模式的epollout事件问题
来源:14-7 水平触发&边缘触发

Mr__Xin
2022-05-11
老师您说在et时epollout事件只有在不可写到可写的转变时刻,才会触发一次,也就是只在写缓冲区从满到非满触发一次。那么请问我如何确定这个socket何时写缓冲区为空(发完数据)呢?只能在这次触发之后把这个socket的epoll_event改成lt才能判断吗?
写回答
2回答
-
长歌_吴从周
2022-05-12
你表达更准确通顺一些,我不明白你的意思。
022022-05-12 -
暖火UP
2022-05-11
if (errno == EAGAIN) // 这个东西应该等于 EWOULDBLOCK { // 内核缓冲区满,这个不算错误 return -1; // 表示发送缓冲区满了 }
我记得是判断错误号errno来判断缓冲区状态,如果发送缓冲区满了,会调用send会返回EAGAIN这个错误。应该是
022022-05-11
相似问题