6

我正在关注如何在 iOS 或 OSX 上检查活动的 Internet 连接?http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html来测试连接性,但我遇到了一些非常基本的问题。

例如,我在另一台机器上运行 .NET API,然后尝试通过我的 mac mini 连接到它。

1)当 IIS 运行时,一切正常,我很高兴我能正常工作!

2)我可以完全关闭 IIS(显然,主机不可访问)但我的reachabilityWithHostName 仍然报告主机是可访问的。

有任何想法吗?

4

2 回答 2

4

请参阅SCNetworkReachability 参考

SCNetworkReachability 编程接口允许应用程序确定系统当前网络配置的状态和目标主机的可达性。当应用程序发送到网络堆栈的数据包可以离开本地设备时,远程主机被认为是可达的。可达性并不能保证数据包会真正被主机接收。

打开和关闭 IIS 只是阻止您的服务器接收 web 请求,例如 ftp/http,并不会阻止设备成功发送数据包。

于 2011-05-03T20:07:33.950 回答
4

前段时间我用这个答案来解决我的问题。我找到了一个更好的解决方案,并将其发布在这里,以供其他可能觉得有帮助的人使用。

Apple 提供了一个很好的示例代码。

在此处下载示例代码

在项目中包含 Reachability.h 和 Reachability.m 文件。查看 ReachabilityAppDelegate.m 以查看有关如何确定主机可达性、WiFi 可达性、WWAN 等的示例。对于网络可达性的非常简单的检查,您可以执行以下操作

Reachability *networkReachability = [Reachability reachabilityForInternetConnection];   
NetworkStatus networkStatus = [networkReachability currentReachabilityStatus];    
if (networkStatus == NotReachable) {        
    NSLog(@"There IS NO internet connection");        
} else {        

     NSLog(@"There IS internet connection");        


    }        
}
于 2012-01-11T02:36:10.050 回答