IOS开发之查看网络链接是否可用-----第一讲

来源:互联网 发布:keba控制器编程手册 编辑:程序博客网 时间:2024/05/22 06:19

在IOS开发中我们经常用到网络,网络是不可或缺的,有网络连接和没有网络连接的时候进行不同的处理,断点续传等等都离不开网络检测。今天我自己简单的做了一个demo,用一个函数封装网络检测;


-(BOOL)netWorkIsExistence{
    struct sockaddr_in initAddress;                             //sockaddr_in是与sockaddr等价的数据结构
    bzero(&initAddress, sizeof(initAddress));
    initAddress.sin_len = sizeof(initAddress);      
    initAddress.sin_family = AF_INET;                      //sin_family是地址家族,一般都是“AF_xxx”的形式。通常大多用的是都是AF_INET,代表TCP/IP协议族
  
    SCNetworkReachabilityRef     readRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&initAddress);     //创建测试连接的引用:
    SCNetworkReachabilityFlags flags;
    
    BOOL getRetrieveFlags = SCNetworkReachabilityGetFlags(readRouteReachability, &flags);
    CFRelease(readRouteReachability);
    
    if (!getRetrieveFlags) {
        return NO;
    }
    
    BOOL flagsReachable = ((flags & kSCNetworkFlagsReachable) != 0);
    BOOL connectionRequired = ((flags & kSCNetworkFlagsConnectionRequired) != 0);
    return (flagsReachable && !connectionRequired) ? YES : NO;
}


上面的内容是否有些不理解,如果你没有接触过socket编程和SCNetworkReachability请看第二讲
原创粉丝点击