iOS网络可达性 - 似乎不起作用

时间:2011-05-03 19:13:18

标签: ios networking reachability

我正在关注How to check for an active Internet connection on iOS or OSX?http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html来测试连接性,但我遇到了一些非常基本的问题。

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

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

请参阅SCNetworkReachability Reference

  

SCNetworkReachability编程   接口允许应用程序   确定系统的状态   当前的网络配置和   目标主机的可达性。 :一种   远程主机被认为是可达的   当一个数据包,由一个   应用程序进入网络堆栈,   可以离开本地设备。   可达性并不能保证   数据包实际上是   由主持人收到。

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

答案 1 :(得分:4)

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

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

下载示例代码here

在项目中包含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");        


    }        
}