【发布时间】:2015-12-17 23:23:22
【问题描述】:
我在tcp::socket 上使用boost::asio::connect。当一切正常时,connect 立即返回,但在网络不佳时,connect 在等待 15 秒的日志后超时。我不能等那么久,所以想减少超时。不幸的是,到目前为止我还没有遇到任何解决方案。
我看到了 async_wait 与deadline_timer 一起使用的解决方案,但所有这些示例都用于接收/发送操作,而不是用于连接。
谁能帮我提供boost::asio::connect(socket, endpoints); 的示例代码。要求是它应该在 5 秒而不是 15 秒内超时。
【问题讨论】:
-
我认为在使用 boost 库时我不能混合 posix api 调用?
-
此外,该链接谈到在连接的套接字中设置超时,而我的问题是如何为连接调用本身设置超时。
-
您只需在 5 秒内完成其他操作。您不需要以任何特殊方式使连接超时。只是不要等待连接。
-
@DavidSchwartz 当然可以要求取消异步操作。 (您不想在已经失效的对象上接收完成处理程序)
标签: c++ sockets boost boost-asio asyncsocket