【发布时间】:2019-06-30 23:11:02
【问题描述】:
我正在从Boost Beast examples 改编synchronous HTTP client。不幸的是,示例客户端不包括超时选项,有时会卡在我的工作负载中。我尝试使用
添加超时beast::get_lowest_layer(stream).expires_after(NetworkSettings::BASIC_TIMEOUT);
在调用写/读操作之前,但这些似乎只在使用 async_read/write 时起作用。 From what I found,似乎基本的 boost asio 仅支持异步操作的超时。所以我的问题是,野兽是否有能力在阻塞的连接/读/写调用上使用超时。
【问题讨论】:
-
我没有 Beast 方面的经验,但是您是否尝试过使用
std::future及其wait_for成员函数? asio 库(由 beast 包装)支持use_future,它将阻塞行为模拟为同步客户端。
标签: c++ boost boost-asio boost-beast