获取网络状态

来源:互联网 发布:淘宝网老爹免费购物 编辑:程序博客网 时间:2024/05/16 13:49
#import <SystemConfiguration/SystemConfiguration.h>#import <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>/**********************************************************************函数名称: getNetworkState函数描述 : 获取网络状态,可根据实际情况进行扩充,此处仅判断网络是否可用输入参数: N/A输出参数: N/A返回值: -1:错误(网络状态无法判断) 0:网络中断 1:网络正常**********************************************************************/+ (int)getNetworkState{struct sockaddr_in zeroAddress;bzero(&zeroAddress, sizeof(zeroAddress));zeroAddress.sin_len = sizeof(zeroAddress);zeroAddress.sin_family = AF_INET;// 以下objc相关函数、类型需要添加System Configuration 框架// 用0.0.0.0来判断本机网络状态SCNetworkReachabilityRef defaultRouteReachability =SCNetworkReachabilityCreateWithAddress(NULL, (structsockaddr*)&zeroAddress);SCNetworkReachabilityFlags flags;BOOL didRetrieveFlags= SCNetworkReachabilityGetFlags(defaultRouteReachability,&flags);CFRelease(defaultRouteReachability);if (!didRetrieveFlags){return -1;}BOOL isReachable = flags & kSCNetworkFlagsReachable;BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;return (isReachable && !needsConnection) ? 1 : 0;}


原创粉丝点击