IOS网络连接的学习
2012-10-22 10:44
113 查看
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if (!didRetrieveFlags) {
printf("Error. Count not recover network reachability flags\n");
}
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
NSString *result;
if ((isReachable && !needsConnection) ? YES : NO) {
result = @"Connection Successed!!!";
}else {
result = @"Connection Faild!!!";
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"TestConnection"
message:result delegate:self
cancelButtonTitle:@"OK,I Know"
otherButtonTitles:nil];
[alert show];
///////////////测试网络连接/////////////////
NSString *connectionKind;
// 测试连接可用性
Reachability *hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"];
// 判断连接类型
switch ([hostReach currentReachabilityStatus]) {
case NotReachable:
connectionKind = @"没有网络链接";
break;
case ReachableViaWiFi:
connectionKind = @"当前使用的网络类型是WIFI";
break;
case ReachableViaWWAN:
connectionKind = @"当前使用的网络链接类型是WWAN(3G)";
break;
default:
break;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络链接类型"
message:connectionKind
delegate:self
cancelButtonTitle:@"知道了,谢谢"
otherButtonTitles:nil];
[alert show];
///////////////测试连接类型/////////////////
[self.textField resignFirstResponder];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
NSString *message;
Reachability *hostReach = [Reachability reachabilityWithHostName:self.textField.text];
if ([hostReach currentReachabilityStatus] == NotReachable) {
message = @"连接失败";
}else {
message = @"连接成功";
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"结果"
message:message
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if (!didRetrieveFlags) {
printf("Error. Count not recover network reachability flags\n");
}
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
NSString *result;
if ((isReachable && !needsConnection) ? YES : NO) {
result = @"Connection Successed!!!";
}else {
result = @"Connection Faild!!!";
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"TestConnection"
message:result delegate:self
cancelButtonTitle:@"OK,I Know"
otherButtonTitles:nil];
[alert show];
///////////////测试网络连接/////////////////
NSString *connectionKind;
// 测试连接可用性
Reachability *hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"];
// 判断连接类型
switch ([hostReach currentReachabilityStatus]) {
case NotReachable:
connectionKind = @"没有网络链接";
break;
case ReachableViaWiFi:
connectionKind = @"当前使用的网络类型是WIFI";
break;
case ReachableViaWWAN:
connectionKind = @"当前使用的网络链接类型是WWAN(3G)";
break;
default:
break;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络链接类型"
message:connectionKind
delegate:self
cancelButtonTitle:@"知道了,谢谢"
otherButtonTitles:nil];
[alert show];
///////////////测试连接类型/////////////////
[self.textField resignFirstResponder];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
NSString *message;
Reachability *hostReach = [Reachability reachabilityWithHostName:self.textField.text];
if ([hostReach currentReachabilityStatus] == NotReachable) {
message = @"连接失败";
}else {
message = @"连接成功";
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"结果"
message:message
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
相关文章推荐
- IOS学习笔记(七)网络连接
- iOS学习笔记之视图控制器的生命周期、多线程、网络连接等
- 开源中国iOS客户端学习——(六)网络连接检测
- 开源中国iOS客户端学习——(六)网络连接检测
- 开源中国iOS客户端学习——(六)网络连接检测
- 开源中国iOS客户端学习——(六)网络连接检测
- iOS学习笔记之视图控制器的生命周期、多线程、网络连接等
- ios学习(六) 网络连接检测
- iOS之Reachability和AFN判断网络连接状态
- IOS使用Reachability实时检测网络连接状况
- Redis 网络通信及连接机制学习
- iOS检查网络是否连接
- IOS学习 网络NSURLSession JSON文件解析、本地服务器启动、MAC混编
- ios开发学习-网络(Networking) 效果源码分享--系列教程
- ios学习——网络操作
- iOS开发之根据状态栏获取网络的连接状态
- VMWare学习总结(2)——VMware中三种网络连接的区别
- cocos2dx网络连接部分深入学习
- IOS检测网络连接状态(转)
- iOS学习笔记网络篇之文件上传(复杂,详解----)