C++ asio:多个挂起的异步\u读取?

C++ asio:多个挂起的异步\u读取?,c++,asynchronous,boost,boost-asio,C++,Asynchronous,Boost,Boost Asio,async_read在收到请求的字节数时调用回调。这可能意味着要多次调用async\u read\u some 在文档中指定最多可以有一个挂起的异步读取。必须在发出下一个异步读取之前调用回调 异步读取呢?多个异步读取是否可以排队?如果是,是否保证保留执行顺序 根据 此操作通过零次或多次调用流的async\u read\u some函数来实现,称为组合操作。程序必须确保流不执行其他读取操作(如异步读取、流的异步读取函数或执行读取的任何其他组合操作),直到该操作完成 这意味着在调用完成处理程序(回调

async_read在收到请求的字节数时调用回调。这可能意味着要多次调用async\u read\u some

在文档中指定最多可以有一个挂起的异步读取。必须在发出下一个异步读取之前调用回调


异步读取呢?多个异步读取是否可以排队?如果是,是否保证保留执行顺序

根据

此操作通过零次或多次调用流的
async\u read\u some
函数来实现,称为组合操作。程序必须确保流不执行其他读取操作(如
异步读取
、流的
异步读取
函数或执行读取的任何其他组合操作),直到该操作完成

这意味着在调用完成处理程序(回调)之前,您不能在同一个流上启动任何进一步的
async\u read
操作——这应该只有一次,当所提供的缓冲区被填满、完成条件得到满足或发生错误时


您还不完全清楚“排队”多个
async\u read
操作是什么意思。实现一系列
async\u-read
操作的方法是在完成处理程序中启动下一个操作。

async\u-read
是一个免费函数,因此可以多次调用它从不同流读取数据,而不是多次调用同一流async_read_some`是套接字/流的成员函数,这就是为什么只能有一个挂起的
async_read_some
。我相信比我更了解asio的内部工作原理的人能够准确地解释为什么……谢谢。这回答了我的问题。例如,我的意思是在同一个处理程序中多次调用async_read。