gpt4 book ai didi

c++ - Qt 的带宽限制

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:35 29 4
gpt4 key购买 nike

我正在使用 QNetworkAccessManager 从 Web 下载文件,它为该任务提供了一个简单的 API。但我希望为该类添加下载速率限制,因此所有 http 回复都不会超过该限制(我认为没有理由限制请求)。

我用谷歌搜索了一下,发现了一篇有趣的帖子 here .但它所做的是 QTcpSocket 的子类,并使用管理一组套接字的单独类来控制带宽。虽然这很好,但我想继续使用 QNetworkAcessManager 类。

在我看来我可以:

  1. 子类化 QNetworkAccessManager 并以某种方式集成子类化的 QTcpSocket(这可能涉及子类化更多类,即 QHttp* 类)。
  2. 使用文章中提供的类并围绕它们构建我自己的 QNetworkAccessManager。
  3. QNetworkAccessManager 允许使用代理。我可以编写一个假代理类,其中包含带宽限制逻辑。但这对我来说似乎是一个丑陋的黑客。

虽然前两个选项是可行的,但我想知道是否有更简单的方法来做到这一点?如果不是,您会推荐哪一个?

最佳答案

我最终使用了 this article 中的 RcTcpSocket 和 RateController使用 QHttp 类。在使用 QHttp 发出获取/发布请求之前,我创建了一个 RcTcpSocket,将其添加到我的 RateController 并使用 QHttp::setSocket(QTcpSocket*)。我仍然没有找到继续使用 QNetworkAccessManager 的解决方案,但这已经足够接近并且效果很好。

关于c++ - Qt 的带宽限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/729792/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com