gpt4 book ai didi

c++ - async_connect 在 boost::asio 中阻塞 io_service::run_one()

转载 作者:可可西里 更新时间:2023-11-01 02:33:53 24 4
gpt4 key购买 nike

我正在尝试运行以下代码:

some_sock.async_connect(...); // handle_connect() sets the 'condition' flag

boost::asio::deadline_timer t(ios, boost::posix_time::seconds(2));
while (t.expires_from_now() >= boost::posix_time::seconds(0))
{
ios.run_one();
if (condition) return;
}

理想的行为是在计时器 t 到期后(2 秒后)从 run_one() 返回。实际上,run_one() 会阻塞,直到收到 SYN-ACK 或 RST。如果服务器没有响应,run_one() 将阻塞超过 2 秒的超时时间。

我应该怎么做才能等待指定的时间让连接在后台执行某些操作?

谢谢。

最佳答案

使用 io_service::rundeadline_timer::async_wait,如 async tcp client example 中所述.

关于c++ - async_connect 在 boost::asio 中阻塞 io_service::run_one(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com