可访问性iOS对vpn上的wifi很少帮助

时间:2012-11-10 19:01:04

标签: iphone objective-c ios reachability

我在课程Reachability和vpn或公共互联网网关方面遇到了一些问题。

如果iPhone连接到带有某些vpn的公共Wifi或付费内容,则应用程序崩溃。如果我禁用wifi并强制通过3g一切正常,如果wifi是一个经典的工作wifi,它也能很好地工作。所以我知道这个问题与那些带有登录名和密码的公共wifi热插座相关联。

如何测试Wifi将以何种方式运行到服务器并获取数据?不应该使用主机名实现可行性吗?即使设置了主机名,它看起来也能通过Wifi返回。

谢谢!

Reachability * reach = [Reachability reachabilityWithHostName:@"www.mysoapp.com"];

NetworkStatus status = [reach currentReachabilityStatus];

if (status == NotReachable) {

    return NO;
}
else
    return YES;

1 个答案:

答案 0 :(得分:1)

可达性仅检查第一跳(在前往所请求主机的路上)。这在移动环境中很重要,因为第一跳可以随着设备的移动而动态地改变和下降。

如果要检查所需的主机,经过第一跳,最好的方法是实际尝试连接到该主机,并发送和接收网络数据包(例如您应用的常规网络流量)。然后让应用程序向用户提供选项,如果连接似乎超时,而不是让应用程序锁定或崩溃。 Apple有时会对后者进行测试,作为其应用审核流程的一部分,并使用失败(如果网络路由中断则崩溃或锁定)作为拒绝应用的理由。