利用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)新增了个对象,如果有明白原因的请指教

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-04
  • 2022-02-14
  • 2022-01-11
猜你喜欢
  • 2021-12-27
  • 2022-12-23
  • 2021-11-14
  • 2021-12-24
  • 2021-06-21
  • 2021-07-29
相关资源
相似解决方案