我使用Stackmob (很快就会结束),我假设他们使用AFNetworking实现可达性。如果设备连接到与Internet断开连接的wifi网络,则可达性检查将为正,以下语句将为真:
if ([self.appDelegate.client.networkMonitor currentNetworkStatus] == SMNetworkStatusReachable) {
// reachable
}我如何微调这个检查以克服目前的限制?如何在此if语句中检查真实的网络可达性,或者是否有更好的可达性检查?
发布于 2014-03-12 21:48:31
如果您的问题是“我可以发送数据到该主机并收到响应”,那么Reachability只能回答"no“或”可能“。它不能回答“是”,因为有许多连通性因素是Reachability不检查的。
可达性只检查第一跳。它将可达性定义为数据包沿主机方向离开设备的能力。如果设备连接到声称能够路由到该主机的网络,则满足可达性。如果路由器在说谎,或者主机故障了,或者堪萨斯州有不友好的挖土机,那么Reachability的结果将是乐观的。
回答“我能否向该主机发送数据并接收响应”问题的唯一确定方法是实际尝试向该主机发送数据并接收响应。当连接绝对不可用时,可达性可以帮助您放弃。如果尝试失败,Reachability的网络更改通知可以帮助您决定何时再次尝试,而不会浪费电源。
https://stackoverflow.com/questions/22363713
复制相似问题