IOS--判断当前网络是否可用
2015-10-26 22:52
465 查看
#import <Foundation/Foundation.h>
@interface NetWorkUtils :
NSObject
//网络判断
- (BOOL) connectedToNetwork;
@end
#import "NetWorkUtils.h"
//网络判断
#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonHMAC.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <netdb.h>
#import <arpa/inet.h>
@implementation NetWorkUtils
//网络判断
-(BOOL) connectedToNetwork
{
// Create zero addy
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)
{
printf("Error. Could not recover network reachability flags\n");
return NO;
}
BOOL isReachable = ((flags &
kSCNetworkFlagsReachable) != 0);
BOOL needsConnection = ((flags &
kSCNetworkFlagsConnectionRequired) != 0);
return (isReachable && !needsConnection) ?
YES : NO;
}
@end
//调用
NetWorkUtils * network=[[NetWorkUtils alloc] init];
if(![network connectedToNetwork]){
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"温馨提示" message:@"网络连接失败,请查看网络是否连接正常!" delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
return;
}
@interface NetWorkUtils :
NSObject
//网络判断
- (BOOL) connectedToNetwork;
@end
#import "NetWorkUtils.h"
//网络判断
#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonHMAC.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <netdb.h>
#import <arpa/inet.h>
@implementation NetWorkUtils
//网络判断
-(BOOL) connectedToNetwork
{
// Create zero addy
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)
{
printf("Error. Could not recover network reachability flags\n");
return NO;
}
BOOL isReachable = ((flags &
kSCNetworkFlagsReachable) != 0);
BOOL needsConnection = ((flags &
kSCNetworkFlagsConnectionRequired) != 0);
return (isReachable && !needsConnection) ?
YES : NO;
}
@end
//调用
NetWorkUtils * network=[[NetWorkUtils alloc] init];
if(![network connectedToNetwork]){
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"温馨提示" message:@"网络连接失败,请查看网络是否连接正常!" delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
return;
}
相关文章推荐
- c++使用happyhttp发送http请求
- Android新的网络请求框架volley源码解释及示例
- FastCGI
- poj2135网络流费用入门
- Java一步一脚印—UDP网络编程的简单实现
- 读书笔记:Android网络通信
- HttpWatch工具简介
- Web中的XHRHttpRequest
- http协议简介
- HTTP协议详解
- Socket编程实践(1) --TCP/IP简述
- 网络-基础知识
- socket网络编程复习笔记(三):套接字描述符背后的秘密
- iOS9 HTTP访问不了的解决方法
- ANDROID OKHTTP MVP
- TCP传输客户端和服务器端的建立
- Caffe学习记录:Cifar-10 自定义网络训练记录
- centos中tomcat配置ssl,用于iphone手机https下载自动安装
- 源码阅读----网络请求
- 《TCP/IP详解 卷一》读书笔记-----TCP超时重传