Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Asio:几个异步recv_until()调用是否完成并按方法调用的顺序回调?_C++_Boost_Boost Asio - Fatal编程技术网

C++ Asio:几个异步recv_until()调用是否完成并按方法调用的顺序回调?

C++ Asio:几个异步recv_until()调用是否完成并按方法调用的顺序回调?,c++,boost,boost-asio,C++,Boost,Boost Asio,Asio:几个异步recv_until()调用是否完成并按方法调用的顺序回调 我有一个程序,可以在服务器应答之前进行两次async\u recv\u until()调用 但是,至关重要的是,第一个调用async\u recv\u until()得到这个响应。有没有办法确保这一点 您似乎有输入错误:asio api中没有async\u recv*操作。有async\u read*和async\u receive,这两种行为略有不同 不能在同一套接字上对async\u read*操作进行排队(但可以

Asio:几个异步recv_until()调用是否完成并按方法调用的顺序回调

我有一个程序,可以在服务器应答之前进行两次
async\u recv\u until()
调用


但是,至关重要的是,第一个调用
async\u recv\u until()
得到这个响应。有没有办法确保这一点

您似乎有输入错误:asio api中没有
async\u recv*
操作。有
async\u read*
async\u receive
,这两种行为略有不同

不能在同一套接字上对
async\u read*
操作进行排队(但可以在不同的套接字上执行这些操作,每个套接字一次激活一个)。发件人:

程序必须确保流不执行其他读取 操作(如async_read、流的async_read_some函数、, 或执行读取的任何其他组合操作),直到 操作完成


所以答案是:您应该在第一次完成后(调用回调后)才执行第二次
异步读取。\

如果两次调用都针对同一个套接字,回调将按照发布的顺序进行(除非某些潜在错误导致提前回调)。尽管拥有依赖于这些调用顺序的状态似乎是一个有缺陷的设计决策。谢谢。你怎么知道的?