gpt4 book ai didi

objective-c - 当我关闭调制解调器同时保持路由器打开时如何检测互联网连接?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:09 27 4
gpt4 key购买 nike

我使用 Reachability从App Developer Library检查互联网连接,代码如下:

+(BOOL)reachable {
Reachability *r = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [r currentReachabilityStatus];

Reachability *r1 = [Reachability reachabilityForLocalWiFi];
NetworkStatus internetStatus1 = [r1 currentReachabilityStatus];

Reachability *r2 = [Reachability reachabilityWithHostName:FTPURL];
NetworkStatus internetStatus2 = [r2 currentReachabilityStatus];

DLog(@"%d,%d,%d",internetStatus,internetStatus1,internetStatus2);

if(internetStatus != NotReachable && internetStatus1 != NotReachable && internetStatus2 != NotReachable)
{
return YES;
}

return NO;

如果wifi可用,这三个状态肯定是“Reachable”。如果我手动关闭 wifi(网络连接标志关闭),所有三种状态都是“NOTReachable”。

当我关闭调制解调器时,同时保持无线路由器打开(网络连接标志打开)。虽然不能上网,但三个状态都是“Reachable”。我想知道为什么会发生这种情况以及如何检测这种 UnReachable 状态?

最佳答案

就您的 iPhone 而言,非常小的网络(即您的无线 LAN)和 Internet 之间没有区别。它只能肯定地说它与 TCP/IP 网络有连接。它无法判断该网络有多大。

如果您想确定您的服务器是否可以从任何特定的 iPhone 访问,您必须尝试连接到它。即使那样,它也可能在您测试连接和发送真实数据之间消失。因此,无论您在开始之前是否测试连接,您仍然必须在数据传输期间优雅地处理连接丢失。您最好不要费心提前检查,而只是假设它在那里并且有处理传输错误的良好代码。

关于objective-c - 当我关闭调制解调器同时保持路由器打开时如何检测互联网连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11346046/

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