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

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

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

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

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

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

测试代码运行结果如下:

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

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

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

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

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

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

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

测试代码运行结果如下:

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

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