c++ - curl 连接选项

标签 c++ curl

我想知道如何使用 C++ 中的 curl 库实时检查文件上传的速度。这是我写的:

curl_easy_getinfo(curl,CURLINFO_SPEED_UPLOAD,&c);

但是手册上说它显示的是平均速度,但即使这样似乎对我也不起作用,因为我只能看到一个 0。

还有一件事:如何设置有效的上传限制,因为如果我这样写:

curl_easy_setopt(curl, CURLOPT_MAX_SEND_SPEED_LARGE, 100);

我收到错误 502 消息。

最佳答案

来自curl_easy_getinfo文档:

CURLINFO_SPEED_UPLOAD

Pass a pointer to a double to receive the average upload speed that curl measured for the complete [emphasis added] upload. Measured in bytes/second.

CURLINFO_SPEED_UPLOAD 仅在上传完成后才有效。相反,编写一个进度回调并设置 CURLOPT_PROGRESSFUNCTION .让你的进度函数计算exponential moving average对于当前速度。

progress(curl, fd, len):
    now = time()
    speed = len/(now-then) * weight + speed * (1-weight)
    update progress display
    then=now

一如既往,网络速度是一个近似值。

关于c++ - curl 连接选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2614948/

相关文章:

php - 使用 PHP 解析网页内容

python - Wandisco:通过 REST 创建新的复制规则

c++如何使用Curl多接口(interface)连续循环

c++ - 关于g++的误解,linux vs windows上的动态和静态链接

c++ - begin() 在 C++17 中是 constexpr 而在 C++14 中是 cbegin() 吗?

c++ - 是否有对数时间插入、删除和查找(带距离)的排序数据结构?

curl - 对 docker 后面的 keycloak 的 token 请求,curl 有效,reactjs 无效

curl - 如何在 cygwin 上安装 cURL(在安装程序中检查了最新版本 - cyg 提示缺少 .DLL)

c++ - 为什么 __int16 和 int(32) 用 C++ 生成不同的 asm?

c++ - 带 mask 的 OpenCV 和 cvAvgSdv (roi)