zoukankan      html  css  js  c++  java
  • iOS开发-关于网络状态的判断

      在判断网络状态这个问题上,苹果提供了一个叫Reachability的第三方库,但是这个库并不能真正的检测我们的网络状态,我也是在调试程序的时候发现的。详情可以阅读这个博客http://blog.csdn.net/openglnewbee/article/details/50705146

      但是我并没有使用上面博客的方法,而是使用另外一种方法。

      因为[Reachability reachabilityWithHostName:]完全没用,所以我把以下代码作为Reachablity类的成员函数添加到Reachability.m文件,并且在.h文件加上声明方便调用,代码如下:

    + (BOOL)connectedToNetWork {
        struct sockaddr_in zeroAddress;
        bzero(&zeroAddress, sizeof(zeroAddress));
        zeroAddress.sin_len = sizeof(zeroAddress);
        zeroAddress.sin_family = AF_INET;
        SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
        SCNetworkReachabilityFlags flags;
        BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
        CFRelease(defaultRouteReachability);
        if (!didRetrieveFlags) {
            printf("Error. Count not recover network reachability flags/n");
            return NO;
        }
        BOOL isReachable = flags & kSCNetworkFlagsReachable;
        BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
        return (isReachable && !needsConnection) ? YES : NO;
    }
    上述代码也有局限,只能判断网络是否连通而无法确定具体的连通方式,不过对于我的需求来说已经够了。
  • 相关阅读:
    《Spring_Four》第二次作业 基于Jsoup的大学生考试信息展示系统开题报告
    《Spring_Four》第一次作业:团队亮相
    4.11jsp
    4.7jsp
    3.17jsp
    3.24jsp
    3.10jsp
    3.4软件测试
    回文串
    博客园第二次作业
  • 原文地址:https://www.cnblogs.com/jierism/p/6010651.html
Copyright © 2011-2022 走看看