博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Reachability(判断网络是否连接)
阅读量:7059 次
发布时间:2019-06-28

本文共 2111 字,大约阅读时间需要 7 分钟。

类似于一个网络状况的探针。

  [[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:@"连接失败"]; } }

转载于:https://www.cnblogs.com/pengyingh/articles/2382259.html

你可能感兴趣的文章
我的友情链接
查看>>
我的友情链接
查看>>
linux配置NTP Server
查看>>
PBDOM操作XML文档轻松入门
查看>>
双机热备 纯软 镜像 实战 安装前准备
查看>>
2011 Web设计的10大趋势
查看>>
认真对待数据库中char和varchar
查看>>
DDL和DML的定义和区别
查看>>
Spring+Quartz实现定时任务的配置方法
查看>>
rsyslog日志格式介绍
查看>>
SAP 设置或取消仓库不参与MRP运算
查看>>
python 基础(三)
查看>>
BeanShell脚本接口之this引用接口类型
查看>>
mysql的复制集群,及读写分离
查看>>
易付宝 大苏宁战略的重要武器
查看>>
IPSec ***原理与配置
查看>>
让群辉支持DTS音轨
查看>>
移动端dropload插件的使用
查看>>
剑指OFFER(java)-二维数组中的查找
查看>>
华云数据与锐捷网络达成战略合作 聚焦行业云
查看>>