Util.m 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // Util.m
  3. // Miaxis
  4. //
  5. // Created by tongjun on 14-3-5.
  6. // Copyright (c) 2014年 tongjun. All rights reserved.
  7. //
  8. #import "Util.h"
  9. //#import <SystemConfiguration/SystemConfiguration.h>
  10. //#import <netdb.h>
  11. #import <RealReachability/RealReachability.h>
  12. @implementation Util
  13. //判断网络是否连接
  14. //- (BOOL) connectedToNetWork
  15. //{
  16. // @try {
  17. // //创建零地址,0.0.0.0的地址表示查询本机的网络连接状态
  18. // struct sockaddr_in zeroAddress;
  19. // bzero(&zeroAddress, sizeof(zeroAddress));
  20. // zeroAddress.sin_len = sizeof(zeroAddress);
  21. // zeroAddress.sin_family = AF_INET;
  22. //
  23. // /**
  24. // * SCNetworkReachabilityRef: 用来保存创建测试连接返回的引用
  25. // *
  26. // * SCNetworkReachabilityCreateWithAddress: 根据传入的地址测试连接.
  27. // * 第一个参数可以为NULL或kCFAllocatorDefault
  28. // * 第二个参数为需要测试连接的IP地址,当为0.0.0.0时则可以查询本机的网络连接状态
  29. // * 同时返回一个引用必须在用完后释放
  30. // * PS: SCNetworkReachabilityCreateWithName: 这是个根据传入的网络测试连接,
  31. // * 第二个参数比如为“www.apple.com”,其他和上一个一样
  32. // *
  33. // * SCNetworkReachabilityGetFlags:这个函数用来获得测试连接的状态,
  34. // * 第一个参数为之前建立的测试连接的引用,
  35. // * 第二个参数用来保存获得的状态,
  36. // * 如果能获得状态则返回TRUE,否则返回FALSE。
  37. // *
  38. // */
  39. //
  40. // SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
  41. // SCNetworkReachabilityFlags flags;
  42. //
  43. // BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
  44. // CFRelease(defaultRouteReachability);
  45. //
  46. // if (!didRetrieveFlags) {
  47. // printf("Error. Could not recover network reachability flags");
  48. // return NO;
  49. // }
  50. //
  51. // /**
  52. // * kSCNetworkReachabilityFlagsReachable: 能够连接网络
  53. // * kSCNetworkReachabilityFlagsConnectionRequired: 能够连接网络,但是首先得建立连接过程
  54. // * kSCNetworkReachabilityFlagsIsWWAN: 判断是否通过蜂窝网覆盖的连接,
  55. // * 比如EDGE,GPRS或者目前的3G.主要是区别通过WiFi的连接
  56. // */
  57. // BOOL isReachable = ((flags & kSCNetworkReachabilityFlagsReachable) != 0);
  58. // BOOL needsConnection = ((flags & kSCNetworkReachabilityFlagsConnectionRequired) != 0);
  59. //
  60. // return (isReachable && !needsConnection) ? YES : NO;
  61. // }
  62. // @catch (NSException *exception) {
  63. // return NO;
  64. // }
  65. //}
  66. + (BOOL) connectedToNetWork{
  67. [GLobalRealReachability startNotifier];
  68. ReachabilityStatus status = [GLobalRealReachability currentReachabilityStatus];
  69. [GLobalRealReachability stopNotifier];
  70. return status ? YES : NO;
  71. }
  72. @end