【问题标题】:Boost asio udp waitForReadyRead提升 asio udp waitForReadyRead
【发布时间】:2010-12-16 06:11:20
【问题描述】:

我正在尝试使用 boost asio udpSocket 实现一个函数,该函数等待数据准备好读取,或者等待超时到期。

使用 asyc_read 和 async_wait,我可以做类似的事情,但我必须读取数据。我想这样做不读取数据

这将允许在许多情况下更轻松地使用 udpSocket 类,但鉴于 udpSocket 接口,我无法弄清楚如何实现这样的功能,而无需手动缓冲数据并重写 sync_read 函数

最好的,Dd

【问题讨论】:

    标签: sockets boost udp timeout boost-asio


    【解决方案1】:

    尝试使用选项message_peek (link) 调用async_receive (link)。这样你就可以像你想要的那样设置一个超时限制的读取,但不需要从接收缓冲区中提取任何数据。

    有关更多详细信息,请阅读MSDN description of MSG_PEEK(这是message_peek 的Windows 特定实现...您需要向下滚动到文章底部)。这应该可以让您更详细地了解它是如何工作的,不过您应该查阅系统的文档以绝对确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多