首页 > 解决方案 > 有没有办法防止 libcurl 缓冲?

问题描述

我正在使用带有 CURLOPT_WRITEFUNCTION 的 libcurl 来下载某个文件。

我使用 CURLOPT_BUFFERSIZE 要求一定的缓冲区大小。

当我的回调函数第一次被调用并且我得到那么多字节时,实际下载的数据要多得多。

例如,如果我要求 1024 字节的数据,当我第一次得到时,该进程已经消耗了 100K 的数据(基于进程资源管理器和类似的工具。我可以在 Wireshark 中看到连续的数据流和 ACK),所以我假设它正在提前下载并缓冲数据。

我在这里想要实现的目标是能够取消基于前几块数据的检索,而无需下载任何不必要的东西。

有没有办法防止这种缓冲,只有在我完成当前数据的处理后才下载下一块数据(或者至少不缓冲数十和数百千字节)?

我希望该解决方案与服务器无关,因此 CURLOPT_RANGE 实际上不会在这里工作。

标签: c++curllibcurl

解决方案


推荐阅读