【问题标题】:epoll - Should you wait for EPOLLOUT?epoll - 你应该等待 EPOLLOUT 吗?
【发布时间】:2014-03-09 00:28:02
【问题描述】:

等待EPOLLIN,从socket中读取所有数据,然后立即发送响应是不是错了?

在发送响应之前等待 EPOLLOUT 会更好吗?如果是这样 - 为什么?如果不是,那么 EPOLLOUT 的目的到底是什么?

我见过一些等待 EPOLLOUT 的 epoll 示例和一些不等待的示例。

【问题讨论】:

    标签: epoll


    【解决方案1】:

    如果等待EPOLLOUT,保证下一个send不会阻塞。这意味着它将接受至少 1 个字节(这无疑是一个很差的保证,但不幸的是,你永远无法保证 send 接受至少 1 个字节以上)。

    如果阻塞没有问题或者套接字是非阻塞的(在这种情况下send 会因EWOULDBLOCK 而失败),您无需等待EPOLLOUT 就可以做得很好。它肯定会产生更简单的代码。
    这样做也没有错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-24
      • 2014-04-20
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      相关资源
      最近更新 更多