boost::asio::read_until数据获取重复问题

简介: 利用boost::asio::read_until读http的chunk包,读取部分代码如下:第一部分读取包头,第二部分循环读chunk包如果不调用consume清空的话,while循环里一直获取到的是包头部分的内容...

利用boost::asio::read_until读http的chunk包,读取部分代码如下:


第一部分读取包头,第二部分循环读chunk包

如果不调用consume清空的话,while循环里一直获取到的是包头部分的内容,consume的官方文档解析如下:


测试代码运行结果如下:


虽然调用了consume,但是boost::asio::buffer_cast<const char*>(sb.data())每次调用时会有部分历史数据,我解决的方法是调用string(char *, int)新增了个对象,如果有明白原因的请指教

目录
相关文章
|
7月前
boost异步
boost异步
|
7月前
|
C++
boost asio异步和stl异步的简单对比
boost asio异步和stl异步的简单对比
|
存储 设计模式 Java
4.7 C++ Boost 多线程并发库
C++语言并没有对多线程与网络的良好支持,虽然新的C++标准加入了基本的`thread`库,但是对于并发编程的支持仍然很基础,Boost库提供了数个用于实现高并发与网络相关的开发库这让我们在开发跨平台并发网络应用时能够像Java等语言一样高效开发。 thread库为C++增加了多线程处理能力,其主要提供了清晰的,互斥量,线程,条件变量等,可以很容易的实现多线程应用开发,而且该库是可跨平台的,并且支持`POSIX`和`Windows`线程。
187 0
Go---Go语言中创建文本文档出现read-only上锁情况
Go---Go语言中创建文本文档出现read-only上锁情况
Go---Go语言中创建文本文档出现read-only上锁情况
|
NoSQL Redis 开发者
数据类型-list 阻塞数据获取| 学习笔记
快速学习数据类型-list 阻塞数据获取
像素缓冲区对象(PBO)的异步Read-Back 源码解析
像素缓冲区对象(PBO)的异步Read-Back 源码解析
234 0
像素缓冲区对象(PBO)的异步Read-Back 源码解析
|
移动开发 网络协议 流计算