C++ c++;如果缓冲区被数据流填充,boost会阻止异步读取吗?

C++ c++;如果缓冲区被数据流填充,boost会阻止异步读取吗?,c++,boost-asio,C++,Boost Asio,例如,如果一个服务器正在向我的tcp客户端发送一个比特流数据包,而我开始使用async\u read\u some来检索它 此async_-read_-some操作可能仅从缓冲区检索数据包的一部分,还是缓冲区是可变的,因此async_-read_-some将被阻止,直到此数据包流完全到达?对于TCP,async_-read_-some可能仅检索数据流的一部分,在用户程序的意义上没有阻塞。假设TCP:“数据包流已完全到达”-不能说流已“到达”-它是字节流。另一个或多个字节可能随时出现。Thx Ma

例如,如果一个服务器正在向我的tcp客户端发送一个比特流数据包,而我开始使用async\u read\u some来检索它


此async_-read_-some操作可能仅从缓冲区检索数据包的一部分,还是缓冲区是可变的,因此async_-read_-some将被阻止,直到此数据包流完全到达?

对于TCP,async_-read_-some可能仅检索数据流的一部分,在用户程序的意义上没有阻塞。

假设TCP:“数据包流已完全到达”-不能说流已“到达”-它是字节流。另一个或多个字节可能随时出现。Thx Martin。假设数据包是1000字节,并且是通过通道发送的唯一内容。缓冲区填充时会锁定其他读卡器吗?什么“其他读卡器”?是否有两个进程/线程从同一个套接字读取数据
async\u read\u一些
按设计并不阻止任何东西,它甚至是函数名的一部分:
async
。调用回调时,可能是读取了所有数据,没有读取数据(如果发生错误或套接字关闭),读取了一些数据,但从来没有超过请求的数据。对不起,我对“缓冲区”一词含糊不清,我不是说我在程序中创建的缓冲区。约阿希姆已经回答了这个问题。@JoachimPileborg您应该将您的评论作为答案发布