【问题标题】:Boost socket async_send: how does it handle ewouldblock?Boost socket async_send:它如何处理 ewilldblock?
【发布时间】:2020-01-10 06:41:23
【问题描述】:

在 Unix 上,如果出站套接字缓冲区已满,非阻塞套接字上的 send() 可能会返回错误 EWOULDBLOCK。在这种情况下,应该调用 select() 来确定何时可以重试。非阻塞模式下的 Boost 套接字会为您处理所有这些吗?

【问题讨论】:

  • EWOUDLBLOCK 仅在非阻塞模式下出现。异步模式不是非阻塞模式。它类似于单独线程上的阻塞模式。
  • 我要澄清一下,我在非阻塞模式下使用 boost socket(我设置了 non_blocking(true)

标签: sockets boost boost-asio


【解决方案1】:

是的,确实如此。例如,您可以在这里查看boost/asio/detail/impl/socket_ops.ipp

【讨论】:

    猜你喜欢
    • 2016-12-26
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2011-06-03
    • 2012-11-14
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多