Reachability网络判断
2015-10-13 19:19
411 查看
类似于一个网络状况的探针。
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
hostReach = [[Reachability reachabilityWithHostName: @"hubj.cnblogs.com"] retain];
[hostReach startNotifier];
wifiReach=[[Reachability reachabilityForLocalWiFi]retain];
[wifiReach startNotifier];
- (void)reachabilityChanged: (NSNotification* )note {
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
NetworkStatus netStatus = [curReach currentReachabilityStatus];
switch (netStatus)
{
case NotReachable:
{
NSLog(@"Access Not Available");
break;
}
case ReachableViaWWAN:
{
NSLog(@"Reachable WWAN");
break;
}
case ReachableViaWiFi:
{
NSLog(@"Reachable WiFi");
break;
}
}
}
判断网络是否连接
实时通知网络状况
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
hostReach = [[Reachability reachabilityWithHostName: @"hubj.cnblogs.com"] retain];
[hostReach startNotifier];
wifiReach=[[Reachability reachabilityForLocalWiFi]retain];
[wifiReach startNotifier];
- (void)reachabilityChanged: (NSNotification* )note {
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
NetworkStatus netStatus = [curReach currentReachabilityStatus];
switch (netStatus)
{
case NotReachable:
{
NSLog(@"Access Not Available");
break;
}
case ReachableViaWWAN:
{
NSLog(@"Reachable WWAN");
break;
}
case ReachableViaWiFi:
{
NSLog(@"Reachable WiFi");
break;
}
}
}
判断网络是否连接
/*** * 此函数用来判断是否网络连接服务器正常 * 需要导入Reachability类 */ + (BOOL)isExistenceNetwork { BOOL isExistenceNetwork; Reachability *reachability = [Reachability reachabilityWithHostName:@""]; // 测试服务器状态 switch([reachability currentReachabilityStatus]) { case NotReachable: isExistenceNetwork = FALSE; break; case ReachableViaWWAN: isExistenceNetwork = TRUE; break; case ReachableViaWiFi: isExistenceNetwork = TRUE; break; } return isExistenceNetwork; }
实时通知网络状况
/* * 在应用委托的方法didFinishLaunchingWithOptions中添加 */ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; reachability = [[Reachability reachabilityWithHostName:@"www.baidu.com"] retain]; [reachability startNotifier]; ........ return YES; /** *此函数通过判断联网方式,通知给用户 */ - (void)reachabilityChanged:(NSNotification *)notification { Reachability *curReachability = [notification object]; NSParameterAssert([curReachability isKindOfClass:[Reachability class]]); NetworkStatus curStatus = [curReachability currentReachabilityStatus]; if(curStatus == NotReachable) { [DOIN_Util logFax:@"连接失败"]; } }
相关文章推荐
- linux内核网络参数somaxconn
- 概率图形模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-贝叶斯多项式
- HTTP学习笔记
- 用过http api 发送邮件
- HTTP请求报文和HTTP响应报文
- android使用timer检测网络请求时长
- 【JMeter】Jmeter-完成一个http压力测试
- oracle 第07章 网络配置管理
- Android网络编程--获取网络图片
- android HttpUrlConnection 设置超时无效,等待时间很长的问题
- 黑马程序员——8.网络编程(网络模型、网络地址、传输协议(UDP、TCP/IP)、客户端和服务器端、URL)
- http://192.168.10.200:50070/windows访问不了 Linux可以
- 网络软件大潮清理“国内泡沫”
- ThreadLocal http://blog.jobbole.com/20400/
- Linux与BSD中TCP协议栈实现比较
- 网络编程 笔记(四) 地址族 数据序列
- Http中Get/Post请求区别
- Windows 下单机最大TCP连接数
- SDWebImage 加载网络图片失败,重新运行,就能加载成功。
- Linux下配置https安全连接(ssl加密连接)