c++ - 有没有办法防止 libcurl 缓冲?
问题描述
我正在使用带有 CURLOPT_WRITEFUNCTION 的 libcurl 来下载某个文件。
我使用 CURLOPT_BUFFERSIZE 要求一定的缓冲区大小。
当我的回调函数第一次被调用并且我得到那么多字节时,实际下载的数据要多得多。
例如,如果我要求 1024 字节的数据,当我第一次得到时,该进程已经消耗了 100K 的数据(基于进程资源管理器和类似的工具。我可以在 Wireshark 中看到连续的数据流和 ACK),所以我假设它正在提前下载并缓冲数据。
我在这里想要实现的目标是能够取消基于前几块数据的检索,而无需下载任何不必要的东西。
有没有办法防止这种缓冲,只有在我完成当前数据的处理后才下载下一块数据(或者至少不缓冲数十和数百千字节)?
我希望该解决方案与服务器无关,因此 CURLOPT_RANGE 实际上不会在这里工作。
解决方案
推荐阅读
- powershell - 仅从具有特定文件类型的给定树中复制特定文件夹结构
- web-services - 将服务引用添加到 DNN 站点时出错
- kubernetes - 带有断路器的 EKS 上的 Traefik
- elixir - 在配置文件中调用 Project.Endpoint.static_url()
- cesium - 如何淡化 Cesium.PolylineArrowMaterialProperty
- node.js - 间隔不是每 5 秒执行一次
- laravel-4 - Laravel 4.2 与 MariaDB 10.2 的兼容性
- sql - 如何获取通过连接获得的多行的唯一值
- javascript - 在酶中模拟来自父母的孩子的点击
- python - file.readlines() 尽管 seek(0) 返回一个空列表