我试图运行下面的代码:async_connect块io_service对象:: run_one()中的boost :: ASIO
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之后,从run_one回报()已过期(2秒后) 。 实际上,run_one()阻塞,直到收到SYN-ACK或RST。如果服务器没有响应,run_one()会阻塞超过2秒的超时。
我该怎么办等待指定的时间来连接在后台做一些工作?
谢谢。
谢谢。 t.async_wait(升压::绑定(empty_function()));解决了这个问题。 – excitoon 2010-11-04 22:42:58