iOS--检查网络连接状态

2018-08-25  本文已影响0人  彬至睢阳

需要导入头文件#import<netinet/in.h>

需要添加SystemConfiguration.framework库并添加#import<SystemConfiguration/SystemConfiguration.h>

#pragma mark---检查网络连接状态

- (BOOL)checkNetworkConnection{

    structsockaddrzeroAddress;

    bzero(&zeroAddress,sizeof(zeroAddress));

    zeroAddress.sa_len=sizeof(zeroAddress);

    zeroAddress.sa_family=AF_INET;

    //根据传入的地址创建网络连接引用

    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);

    SCNetworkReachabilityFlags flags;

    //获取网络连接状态(是否存在网络连接)第一个参数为之前建立的测试连接的引用,第二个参数用来保存获得的状态,如果能获得状态则返回TRUE,否则返回FALSE

    BOOLdidReceiveFlags =SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);

    CFRelease(defaultRouteReachability);

    if(!didReceiveFlags) {

        returnNO;

    }

    BOOLisReachable = flags &kSCNetworkFlagsReachable;//表明网络可以访问。

    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;//无需更多链接。

    return(isReachable && !needsConnection) ?YES:NO;

}

上一篇 下一篇

猜你喜欢

热点阅读