ios network connect reachability

- (BOOL) connectedToNetwork
{
     //  Create zero addy
     struct sockaddr_in zeroAddress;
    bzero(&zeroAddress,  sizeof(zeroAddress));
    zeroAddress.sin_len =  sizeof(zeroAddress);
    zeroAddress.sin_family = AF_INET;
    
     //  Recover reachability flags
    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, ( struct sockaddr *)&zeroAddress);    
    SCNetworkReachabilityFlags flags;
    
    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
    CFRelease(defaultRouteReachability);
    
     if (!didRetrieveFlags) 
    {
        printf( " Error. Could not recover network reachability flags\n ");
         return NO;
    }
    
    BOOL isReachable = ((flags & kSCNetworkFlagsReachable) !=  0);
    BOOL needsConnection = ((flags & kSCNetworkFlagsConnectionRequired) !=  0);
     return (isReachable && !needsConnection) ? YES : NO;
}

- ( void) viewDidLoad
{
    self.navigationController.navigationBar.tintColor = COOKBOOK_PURPLE_COLOR;
    self.title = [self connectedToNetwork] ?  @" Connected " :  @" Not Connected ";
}

你可能感兴趣的:(Reachability)