有没有办法取消挂起操作(没有断开连接)或设置升压库函数的超时?
即我想在boost asio中阻止套接字设置超时?
socket.read_some(boost :: asio :: buffer(pData,maxSize),error_);
示例:我想从套接字中读取一些内容,但是如果已经过了10秒,我想抛出一个错误.
通过阅读其他Stack Overflow条目和boost::asio文档,我已经确认没有同步ASIO读/写调用也提供易于使用的超时作为调用的参数.
我正在使用带有超时的select(2)调用来转换旧式Linux套接字应用程序,我需要做大致相同的事情.
那么最好的方法是什么boost::asio?看一下asio文档,有很多令人困惑的例子,各种与定时器有关的东西,但我很困惑.
我很想看到一个简单易懂的例子:从套接字读取,但等待最多X秒,之后函数返回什么都没有,或者返回任何能够从套接字读取的内容在超时到期之前.
所以这是我的问题:我们已经有accepted一个提升asio tcp套接字.我们所有的API都使用它.我们只需要在一个函数中执行"timeouted read".
这是可以做到这样的"timeouted读"如图所示这里.但是我从我的API获得了提升asio tcp socket,所以我想知道是否有可能将Boost :: asio socket转换为basic_socket_iostream.怎么做?