美文网首页
iOS--检查网络连接状态

iOS--检查网络连接状态

作者: 彬至睢阳 | 来源:发表于2018-08-25 19:17 被阅读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;

}

相关文章

网友评论

      本文标题:iOS--检查网络连接状态

      本文链接:https://www.haomeiwen.com/subject/rkfmiftx.html