我使用 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/