ios - 关于断开连接的 wifi 网络的可达性

标签 ios objective-c afnetworking

我使用 Stackmob SDK(即将结束),我假设他们使用 AFNetworking 来实现可达性。如果设备连接到与 Internet 断开连接的 wifi 网络,则可达性检查将为正,并且以下语句将为 true:

if ([self.appDelegate.client.networkMonitor currentNetworkStatus] == SMNetworkStatusReachable) {
    // reachable
}

如何微调此检查以克服当前的限制?如何在该 if 语句中检查真实的网络可达性,或者是否有更好的可达性检查?

最佳答案

如果您的问题是“我可以向该主机发送数据并接收响应吗”,那么 Reachability 只能回答“否”或“也许”。它无法回答"is",因为 Reachability 不检查许多连接因素。

可达性仅检查第一跳。它将可达性定义为数据包沿该主机方向离开设备的能力。如果设备连接到的网络声称能够路由到该主机,则满足可达性。如果路由器撒谎或主机宕机或堪萨斯州有不友好的反铲挖掘机,那么 Reachability 的结果将是乐观的。

回答“我可以向该主机发送数据并接收响应”这个问题的唯一可靠方法是实际尝试向该主机发送数据并接收响应。当连接肯定不可用时,可达性可以帮助您放弃。如果您尝试失败,Reachability 的网络更改通知可以帮助您决定何时重试,而不会浪费电量。

关于ios - 关于断开连接的 wifi 网络的可达性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22363713/

相关文章:

ios - 非公开 API 使用

ios - 向 UITableView 添加元素

ios - 如果语句未命中则编码

c++ - 如何在函数内部操作 char 数组(字符串)的指针,它在 c/c++ 中作为参数传递

ios - 使用 AFNetworking 解析 JSON

html - 没有 HTML 标记的 NSString

ios - 在设备上安装 Release build 的最快方法?

ios - 在 Swift 项目中包含基于方案的某些 Objective-C 文件

ios - 如何从 AFNetworking 中的 POST 请求中读取一个简单的字符串(无 JSON)

ios - 使用AFNetworking,每次启动应用后,PHPSESSID都会更改