在上面两篇中介绍了如何获取网络状态与sock的简单介绍,到此大概对socket有一点了解,下面介绍ios的
CFAllocatorRef allocator, //可以为NULL或kCFAllocatorDefault
const struct sockaddr *address //需要测试连接的IP地址
CFAllocatorRef allocator,//可以为NULL或kCFAllocatorDefault
const char *nodename//比如为"www.baidu.com",此参数为域名
Boolean SCNetworkReachabilityGetFlags ( //用来获得网络连接的状态
SCNetworkReachabilityRef target,//之前建立的网络连接的引用
SCNetworkReachabilityFlags *flags//保存确定连接是否获得的状态
);
其中常用的状态有:
kSCNetworkReachabilityFlagsReachable:能够连接网络
kSCNetworkReachabilityFlagsConnectionRequired:能够连接网络,但是首先得建立连接过程
kSCNetworkReachabilityFlagsIsWWAN:判断是否通过蜂窝网覆盖的连接,比如EDGE,GPRS或者目前的3G.主要是区别通过WiFi的连接。
SCNetworkReachability类的应用,在IOS中SystemConfiguration框架包含联网相关的函数,可以检查网络连接状态。在
SCNetworkReachability.h定义测试网络连接状态的函数,具体看下面:
一:创建测试网络引用
(1)SCNetworkReachabilityRef SCNetworkReachabilityCreateWithAddress ( //根据传入的地址创建网络连接引用CFAllocatorRef allocator, //可以为NULL或kCFAllocatorDefault
const struct sockaddr *address //需要测试连接的IP地址
);
注意:当address为0.0.0.0时则可以查询本机的网络连接状态。同时返回一个引用必须在用完后释放。
(2)SCNetworkReachabilityRef SCNetworkReachabilityCreateWithName ( //根据传入的网址创建网络连接引用CFAllocatorRef allocator,//可以为NULL或kCFAllocatorDefault
const char *nodename//比如为"www.baidu.com",此参数为域名
);
注意:当address为0.0.0.0时则可以查询本机的网络连接状态。同时返回一个引用必须在用完后释放。
释放用 CFRelease(SCNetworkReachabilityRef ref );
Boolean SCNetworkReachabilityGetFlags ( //用来获得网络连接的状态
SCNetworkReachabilityRef target,//之前建立的网络连接的引用
SCNetworkReachabilityFlags *flags//保存确定连接是否获得的状态
);
其中常用的状态有:
kSCNetworkReachabilityFlagsReachable:能够连接网络
kSCNetworkReachabilityFlagsConnectionRequired:能够连接网络,但是首先得建立连接过程
kSCNetworkReachabilityFlagsIsWWAN:判断是否通过蜂窝网覆盖的连接,比如EDGE,GPRS或者目前的3G.主要是区别通过WiFi的连接。