iPhone判断当前网络连接状态
2016-06-12 15:03
471 查看
导入头文件
[objc] view
plain copy
#include <netinet/in.h>
#import <SystemConfiguration/SCNetworkReachability.h>
判断网络连接状态
[objc] view
plain copy
//判断当前网络连接状态
-(BOOL)isNetworkAvailable
{
//创建零地址,0.0.0.0的地址表示查询本机的网络连接状态
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;
}
[objc] view
plain copy
#include <netinet/in.h>
#import <SystemConfiguration/SCNetworkReachability.h>
判断网络连接状态
[objc] view
plain copy
//判断当前网络连接状态
-(BOOL)isNetworkAvailable
{
//创建零地址,0.0.0.0的地址表示查询本机的网络连接状态
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;
}
相关文章推荐
- TCP 协议 ---- "三次握手,四次挥手"
- http请求测试网址
- httpd: Could not reliably determine the server's fully .......
- 通过 http 协议上传文件
- java 网络编程
- 浅谈HTTPS安全性
- HTTP 的 Keep-Alive模式
- JAVA网络编程
- 如何在低速率网络中测试 Web 应用
- HttpClient4.0
- ImageNet中的LRN(Local Response Normalization)
- okhttp get
- android判断手机是否连接网络
- Linux网站网络引流压力测试网站
- android音视频网络传输
- 网络管理
- 理解HTTP幂等性
- 千万级规模高性能、高并发的网络架构经验
- NodeJS+Expres+Socket.io实现HTTP通知websocket客户端
- 使用 Charles 获取 https 的数据