限制 NSURLConnection 数据速率? (带宽限制)

2023-11-30

有没有办法限制 NSURLConnection 使用的带宽,或者我被迫使用 CFNetwork 方法?


是的,但它并不漂亮(它的工作原理是这个邮件列表帖子):

  • 在后台线程上启动 NSURLConnection (您必须设置一个运行循环)。
  • 睡个懒觉-connection:didReceiveData:.
  • 以线程安全的方式将数据转发到主线程。

如果代表是一个人,那么第三个要点就有点棘手了。UIViewController,但是这样的事情应该可以工作delegate is __weak or __unsafe_unretained:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
  [NSThread sleepForTimeInterval:...];
  [self performSelectorOnMainThread:@selector(notifyDelegateDidReceiveData:) withObject:data waitUntilDone:NO];
}

-(void)notifyDelegateDidReceiveData:(NSData*)data
{
  assert([NSThread isMainThread]);
  [delegate myConnectionWrapper:self didReceiveData:data];
}

计算睡眠时间并不简单,因为您可能希望考虑 TCP/IP 开销,但是[data length]+100可能是对的。

如果您有多个连接并且想要限制组合带宽,请将它们全部放在same后台线程/运行循环(参见-performSelector:onThread:withObject:waitUntilDone:).

对于 CFNetwork 版本,我猜您已经阅读过这篇关于可可与爱的文章.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

限制 NSURLConnection 数据速率? (带宽限制) 的相关文章

随机推荐

  • 序列化 PHP => 反序列化 JAVA / 以字符串格式序列化 php

    我在 php 中有一个这种格式的数组 连载 a 2 s 2 id i 42 s 4 user s 8 superman 我将其接收到String在Java中 我该如何在java中反序列化它 我知道implements Serializabl
  • firebase auth onCreate 触发器应该有更多数据吗?

    我在用着functions auth user onCreate 作为 firestore 项目的一部分 并尝试在新用户注册时设置一些默认数据 对于前端 我使用 firebase ui 并启用了 Google 和电子邮件 密码提供商 当我使
  • Java8 方法引用的 Proguard 混淆在运行时中断

    我在混淆 java8 源代码时遇到了一个持续存在的问题 当 Lambda 方法引用在函数中多次使用时 它们似乎会在运行时失败 失败的代码 Set
  • 使用 VBA 将 Excel 数据从列复制到行

    我对 VBA 有一点经验 非常感谢任何有关此问题的帮助 从基本意义上讲 我需要将工作表 1 中的 2 列数据转换为工作表 2 中的数据行 目前在 Excel 中看起来像这样 我需要它看起来像这样 我已经编写了将标题转移到工作表 2 的代码
  • 定型冷冻刷

    我似乎遇到了一些有关 WPF ResourceDictionaries 画笔和样式的行为 至少这是我到目前为止所注意到的 这与我对这些东西应该如何工作的理解相反 基本上 如果我使用 ResourceDictionary 中的样式引用 Set
  • mod_rewrite规则:如果URL包含某个字符串

    我的客户不断编辑网站中的导航结构 这导致了一些 mod rewrite 问题 我怎样才能制定这个规则 RewriteRule studios about studios artist noticeboard noticeboard2 php
  • Ubuntu Python 3 上的 Pygame

    我到处都找过了 我的具体问题没有答案 我有 Ubuntu 我想在 Python 3 上使用 pygame 我安装了pygame封装有 sudo apt get python pygame 但当我打字时它不起作用 import pygame
  • 如何检测纯文本中没有锚元素的链接

    如果用户在文本框中输入文本并保存它 然后再次添加更多文本 他可以编辑该文本并在需要时保存它 首先 如果用户输入带有某些链接的文本 我会检测到它们并将任何超链接转换为在新选项卡中链接 其次 如果用户想添加更多文本和链接 他单击编辑并添加它们并
  • 模式中带 & 不带“fixed”的 b/w str_detect 有什么区别?

    这是示例字符串 x lt My name is XYZ I m from ABc working at PQR 并想要检测字符串中的 并使用两种形式 gt str detect x 1 TRUE gt gt str detect x fix
  • Url.Action 参数?

    在我列出的控制器中 public ActionResult GetByList string name string contact var NameCollection Service GetByName name var Contact
  • 如何修复命令帮助已注册的discord.py

    我正在尝试向我的机器人添加帮助命令 但是当我运行代码时出现此错误 raise discord ClientException Command 0 name is already registered format command disco
  • Angularfire 2 错误:未为此 Firebase 启用指定的身份验证提供程序

    我正在创建一个简单的示例身份验证应用程序 使用 Ionic 2 和 angularfire 2 作为后端 当我尝试创建新用户时 它说 例外 错误 未捕获 承诺中 错误 指定的 未为此 Firebase 启用身份验证提供程序 But i al
  • Facebook Realtime API 中的验证令牌是什么

    我正在尝试使用我的应用程序实现 Facebook Realtime api 我想从我的 Facebook 页面 中提取提要 我已经获得了app access token app access token xxxxxxxxxxxxxxxxxx
  • 将 Chrome 本机消息连接到 Windows 上的现有实例

    我创建了一个 chrome 后台脚本和一个使用 python 运行的主机 通过执行 清单 中链接的 bat 文件来运行 一切都还不错 但据我所知 每次我使用 chrome 扩展连接到主机以进行本机消息传递时 我都会创建 python 实例并
  • 在大型数据集上有效计算分段回归

    我目前有一个很大的数据集 我需要计算分段回归 或以类似的方式拟合分段线性函数 然而 我既有一个很大的数据集 也有非常多的碎片 目前我有以下方法 Let si be the end of segment i Let xi yi denote
  • Elastic Search 嵌套对象查询

    我有一个如下所示的弹性搜索索引集合 index test type abc source file name xyz ex metadata format ex profile date value 2018 05 30T00 00 00
  • 雪豹、sqlite3-ruby

    所以我遵循了每一个建议这个线程 没有成功 我正在运行 os x 10 6 rails 2 3 3 ruby 1 9 1 当我尝试访问 Rails 应用程序的首页时仍然收到此错误 未初始化常量 SQLite3 Driver Native Dr
  • 如何将 Java Gradle 项目转换为 Dynamic Web 项目?

    我正在关注这篇文章 https www linkedin com pulse building jax rs project eclipse gradle neeraj malhotra 关于如何使用 Gradle 在 Eclipse 中构
  • 在 bash 中重定向 STDIN?

    举个例子 我想用密码登录mysql 我知道我可以使用 pmypass 但我想了解如何在 bash 中重定向标准输入 所以我的测试是 mysql u limited user p
  • 限制 NSURLConnection 数据速率? (带宽限制)

    有没有办法限制 NSURLConnection 使用的带宽 或者我被迫使用 CFNetwork 方法 是的 但它并不漂亮 它的工作原理是这个邮件列表帖子 在后台线程上启动 NSURLConnection 您必须设置一个运行循环 睡个懒觉 c