2

我正在构建应用程序的一部分,该应用程序需要用户下载不同大小的文件。目前,我正在使用 Apple 的可达性代码让我知道我是否有连接。
http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

虽然可达性代码可以跟踪“有连接”,但它无法让我知道连接恶化。看来我需要扩展 Apple 代码的功能以满足我的要求。我是否可以测量数据传输过程中丢弃数据包的数量或百分比?这将很有帮助,因此我可以向用户发送消息并能够暂停或停止下载。

4

1 回答 1

1

没有可用的 iOS API 可以深入网络堆栈,告诉您何时以及为何丢弃数据包。它可能在路由器上被丢弃,也可能由于校验和错误而在本地被丢弃。

它是什么样的数据?我假设 TCP。您可以通过检查吞吐率来推断连接的质量。您可以计算每秒接收的字节数。

TCP 有一种叫做拥塞控制的东西,终端主机(iOS 设备)会在数据包被丢弃和未被确认时限制其吞吐量。因此吞吐量可能与网络质量相关。但是,您的吞吐率可能会因网络拥塞、数据包整形、QoS 等多种原因而有所不同。

iOS 没有公共API 来监控 wifi 信号强度。有一个私有 API,但如果您使用私有 API,您的应用将不会在应用商店中获得批准。

于 2014-01-11T05:17:04.197 回答