是否可以通过编程方式操作设备上的网络质量?

时间:2013-11-15 12:23:05

标签: ios iphone ipad networking network-programming

有没有办法以编程方式在iOS设备上模拟不同的网络状况?

iOS为我们提供了网络链接调节器,但我找不到以编程方式访问它的方法。

如果没有办法直接操纵网络质量,有没有办法间接模拟它?

数据包丢失:

  • 是否可以通过破坏HTTP请求返回的数据来模拟数据包丢失?但这会真的模拟数据包丢失吗?在严重丢包的情况下,请求不会返回并超时吗?

糟糕的潜伏期:

  • 要模拟不良延迟,是否可以将客户端的HTTP请求处理延迟一个随机数量?

更新

1 个答案:

答案 0 :(得分:0)

对于我的单元测试,我创建了一小段代码来执行此操作(在UNIT测试的命令下)。这个想法是,无论你有什么代码最终发送一个请求说NSURLConnection,你随机只是不提交它,并在一定的秒数后发出一个“假”返回,错误为“超时”。同样,您可以代替立即调度连接,将其放在dispatch_after块中,并添加固定或随机延迟。

以上只是少数代码,可以轻松实现。我有条件地编译了我的(也就是说,它仅仅是在UNIT测试中定义的MACRO背后)。