判断是否联网

来源:互联网 发布:皇甫圣华的淘宝店 编辑:程序博客网 时间:2024/05/16 06:24

#import "AppDelegate.h"#import <sys/socket.h>#import <netinet/in.h>#import <arpa/inet.h>#import <netdb.h>#import <SystemConfiguration/SCNetworkReachability.h>@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    // Override point for customization after application launch.    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];        NSLog(@"%d", ([self isNetworkReachable] ? 2:0));    return YES;}- (BOOL)isNetworkReachable{        // 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)            {                return NO;            }                BOOL isReachable = flags & kSCNetworkFlagsReachable;        BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;        return (isReachable && !needsConnection) ? YES : NO;    }


0 0
原创粉丝点击