iPhone判斷當前網路連接狀態,iphone當前網路連接
匯入標頭檔
#include <netinet/in.h>#import <SystemConfiguration/SCNetworkReachability.h>
判斷網路連接狀態
//判斷當前網路連接狀態-(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; }