C++ Boost阻塞读取超时

C++ Boost阻塞读取超时,c++,boost,boost-asio,C++,Boost,Boost Asio,我遵循下面的链接来实现带超时的阻塞读取 它很好用。现在我想实现另一个不使用timeout的函数。所以我试着直接打电话: socket_.async_receive(boost::asio::buffer(buf,size), boost::bind(&TCPClient::HandleReceive, _1, _2, &ec, &length)); 问题是函数不阻塞并立即返回长度为0的值 我应该在async_接收之前调用哪个函数来无限期阻塞 关于前缀

我遵循下面的链接来实现带超时的阻塞读取

它很好用。现在我想实现另一个不使用timeout的函数。所以我试着直接打电话:

socket_.async_receive(boost::asio::buffer(buf,size),
         boost::bind(&TCPClient::HandleReceive, _1, _2, &ec, &length));
问题是函数不阻塞并立即返回长度为0的值

我应该在async_接收之前调用哪个函数来无限期阻塞


关于前缀
async
表示函数异步运行

只需打电话

如果您需要在调用返回之前读取固定数量的字节,您最好查看,因为
receive
操作可能不会接收所有请求的字节数。

您可以通过调用等待工作完成

不过,在使用该服务进行更多工作之前,请记住使用它