目前我正在通过以下方式同步接收数据
boost::array<char, 2000> buf;
while(true)
{
std::string dt;
size_t len = connect_sock->receive(boost::asio::buffer(buf, 3000));
std::copy(buf.begin(), buf.begin()+len, std::back_inserter(dt));
std::cout << dt;
}
我的问题是这种方法是否足够有效以接收超过缓冲区大小的数据。有什么方法可以让我确切知道有多少数据可用,以便我可以相应地调整缓冲区大小?(这样做的原因是我的服务器向一个请求发送了一个特定的响应,该请求只有在整个响应存储在字符串变量中时才需要处理。