【发布时间】:2013-04-26 05:02:46
【问题描述】:
这是这个问题的副本。 SCNetworkReachabilityGetFlags returns 0 even when wireless available
我尝试了该帖子中提出的所有解决方案。但它们都不适合我。
SCNetworkReachabilityRef reachabilityRef = SCNetworkReachabilityCreateWithName(NULL, [hostname UTF8String]);
BOOL success = SCNetworkReachabilityGetFlags(reachabilityRef, &flags); //flags are always 0.
bool isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
CFRelease(reachabilityRef);
if(isAvailable)
{
NSLog(@"Host is reachable: %d", flags);
}
else
{
NSLog(@"Host is unreachable");
}
我正在尝试通过 VPN 连接到主机。有人可以建议一种解决方法吗?
【问题讨论】:
-
您是否收到错误代码?定义“不工作”。
-
不工作意味着标志始终为0,并且后续条件失败。
-
另外,您是否尝试过按照 Apple 的 Reachability 示例中所述设置通知(请参阅应用程序委托中的代码)?您是否收到过可达性状态更改的通知?
-
我假设您的主机名只是主机名,而不是 IP 号,没有方案(例如“http://”),没有目录或端口号等,只是主机名?您是否记录了主机名?你说
flags(不是isAvailable)是0。success是什么?那是零还是非零?如果为零,您是否检查过System Configuration Reference 中描述的错误代码?您是否在其他主机(包括 VPN 和非 VPN)上尝试过此操作?