gpt4 book ai didi

ios - iOS 中的可达性

转载 作者:行者123 更新时间:2023-11-28 22:35:20 24 4
gpt4 key购买 nike

这是这个问题的副本。 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 连接到主机。有人可以提出解决方法吗?

最佳答案

我已经在一个运输应用程序中成功地使用了这个 API。首先,主机名必须类似于 www.apple.com。可达性需要一些时间来确定主机是否存在。

我在我的应用程序中采用的策略是假设它在启动时就在那里,并监控在许多(比如 20)秒后启动的可达性通知。如果您不能等那么久,这里还有其他帖子提供了处理该问题的策略,例如,尝试立即对主机执行 ping 操作。

请注意,移动设备在发布时确定此状态存在很多障碍,并且没有完美的解决方案。

我所做的是假设它已启动,放置一个显示“正在连接...”的微调器,如果我稍后遇到可达性故障,则将其关闭(或在请求失败时将其关闭)。从那时起,它似乎定期更新(我过去常常带着我的应用程序在火车上穿过隧道,当网络访问发生变化时,我可以看到它显示“断开连接”和“连接”状态。

关于ios - iOS 中的可达性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16223577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com