IOS測試網路狀態

來源:互聯網
上載者:User

[html]/////////第一次開啟時判斷網路狀態  - (int) connectedToNetwork  {      NSString *kindStr;      int kind;      //建立零地址,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)      {          kindStr = @"擷取資訊失敗";          kind = -1;      }      else{          //根據獲得的串連標誌進行判斷          BOOL isReachable = flags & kSCNetworkFlagsReachable;          BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;                    if((isReachable && !needsConnection)==YES)          {              ///能夠串連網路              if((flags& kSCNetworkReachabilityFlagsIsWWAN)==kSCNetworkReachabilityFlagsIsWWAN)              {                  kindStr = @"行動電話通訊";                  kind = 0;              }              else              {                  kindStr =@"wifi串連網路";                  kind = 1;              }          }          else{              kindStr =@"不能串連網路";              kind = -1;          }      }      return kind;  }    ////////////////設定網路監聽  -(void)SetJianCeNetwork  {      //開啟網路狀況的監聽      [[NSNotificationCenter defaultCenter] addObserver:self                                               selector:@selector(reachabilityChanged:)                                                   name: kReachabilityChangedNotification                                                 object: nil];      hostReach = [[Reachability reachabilityWithHostname:@"www.xtox.net"] retain];//可以以多種形式初始化      [hostReach startNotifier];  //開始監聽,會啟動一個run loop  }    // 串連改變  - (void) reachabilityChanged: (NSNotification* )note  {      Reachability* curReach = [note object];      NSParameterAssert([curReach isKindOfClass: [Reachability class]]);      [self updateInterfaceWithReachability: curReach];  }  //處理網路連接改變後的情況  - (void) updateInterfaceWithReachability: (Reachability*) curReach  {      //對串連改變做出響應的處理動作。      NetworkStatus status = [curReach currentReachabilityStatus];            if (status == NotReachable)      {  //沒有串連到網路就彈出提實況          isNetType = -1;          UIAlertView *alert =[[UIAlertView alloc]initWithTitle:nil message:@"網路連接失敗,請檢查網路" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil];          [alert show];          [alert release];      }      else if(status == ReachableViaWiFi ||status == ReachableViaWWAN)      {                    if(status == ReachableViaWWAN)          {              isNetType = 0;          }          else if(status == ReachableViaWiFi)          {              isNetType = 1;          }          //          NSThread *initThread = [[NSThread alloc]initWithTarget:self selector:@selector(InitThreadFunc:) object:self];          [initThread start];          return;                }        }  -(void)InitThreadFunc:(id)sender  {      //isNetType = [self connectedToNetwork];      if(isNetType!=-1)      {          if([g_json Test]==YES)          {             [g_json UserLogin:0 pass:nil];              [self GetUpdate];              return;          }          else          {              isNetType = -1;          }      }        }   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.