【问题标题】:iOS network reachability - doesn't seem to be workingiOS 网络可访问性 - 似乎无法正常工作
【发布时间】:2011-05-03 19:13:17
【问题描述】:

我正在关注 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 仍然报告主机可访问。

有什么想法吗?

【问题讨论】:

    标签: ios networking reachability


    【解决方案1】:

    请参阅SCNetworkReachability Reference

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

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

    【讨论】:

    • 啊-谢谢,这很有道理。如果我的网络服务启动了,我将如何实际测试??
    • 执行 GET 或 HEAD 请求并使用 NSURLConnection 或 ASIHttpRequest 查找 200 - OK 消息
    【解决方案2】:

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

    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");        
    
    
        }        
    }
    

    【讨论】:

    • 您没有回答问题。他想要的是检查一个ip连接是否真的存在。
    猜你喜欢
    • 2017-09-04
    • 2012-05-06
    • 2013-02-17
    • 2017-10-09
    • 2017-08-03
    • 2014-05-02
    • 2011-09-11
    • 2016-02-11
    • 1970-01-01
    相关资源
    最近更新 更多