Mac和iOS上的互联网连接

塔兹

我目前正在编写一些代码,以确定在Mac或iOS上是否可以发出网络请求。

在被告知查看Apple提供的Reachability类之前,我只想指出,即使使用它们,我也能得到相同的结果。因此,相反,我认为我会写我自己的书,因为这完全是我所需要的。

我已经像Apple一样发起了一个可达性对象:

+ (Reachability*) reachabilityForInternetConnection;
{
    struct sockaddr_in zeroAddress;
    bzero(&zeroAddress, sizeof(zeroAddress));
    zeroAddress.sin_len = sizeof(zeroAddress);
    zeroAddress.sin_family = AF_INET;
    return [self reachabilityWithAddress: &zeroAddress];
}

然后调用[networkStatusForFlags:flags](或在我的代码中等效),我有以下内容:

NSLog(@"Reachability Flag Status: %c%c %c%c%c%c%c%c%c\n",
      (flags & kSCNetworkReachabilityFlagsIsWWAN)               ? 'W' : '-',
      (flags & kSCNetworkReachabilityFlagsReachable)            ? 'R' : '-',

      (flags & kSCNetworkReachabilityFlagsTransientConnection)  ? 't' : '-',
      (flags & kSCNetworkReachabilityFlagsConnectionRequired)   ? 'c' : '-',
      (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic)  ? 'C' : '-',
      (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-',
      (flags & kSCNetworkReachabilityFlagsConnectionOnDemand)   ? 'D' : '-',
      (flags & kSCNetworkReachabilityFlagsIsLocalAddress)       ? 'l' : '-',
      (flags & kSCNetworkReachabilityFlagsIsDirect)             ? 'd' : '-'
      );

BOOL thereIsInternetAccess = NO;

if ((flags & kSCNetworkReachabilityFlagsReachable) != 0 && (flags & kSCNetworkReachabilityFlagsConnectionRequired) == 0)
{
    thereIsInternetAccess = YES;
}
else
{
    thereIsInternetAccess = NO;
}

不管我的Mac的Wifi是打开还是关闭,我都将以下内容输出到控制台Reachability Flag Status: -R -----l-,这对我来说表明存在互联网(由于R被标记)

我想念什么吗?任何帮助将不胜感激。

注意:我正在使用iOS Simulator。不要以为那应该重要。

塔兹

iOS模拟器无法正常运行。

使用系统配置框架实现网络可访问性时,确实会通过注册的回叫(SCNetworkReachabilitySetCallback通知Mac的网络状态已更新但是,从我的测试来看,这些标志似乎并没有每次都正确地返回。在具有Mac应用程序目标的Mac上或iOS设备上使用相同的代码,该代码将以预期的结果运行。

模拟器永远不应成为您应用程序唯一测试手段的另一个原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

子网和互联网连接

来自分类Dev

尝试使用 Alamofire 检查 iOS 设备上的互联网连接

来自分类Dev

在SWIFT 3上检测互联网连接是否可用(WIFI和4G)

来自分类Dev

检测互联网连接

来自分类Dev

互联网连接中断

来自分类Dev

冗余互联网连接

来自分类Dev

检测互联网连接

来自分类Dev

互联网连接中断

来自分类Dev

互联网连接检测

来自分类Dev

奇怪的互联网连接

来自分类Dev

iOS-没有互联网连接的CLGeocoder

来自分类Dev

互联网连接恢复时重试请求-iOS

来自分类Dev

iOS XMPP检查到互联网的连接

来自分类Dev

在Android Wear上直接建立互联网连接?

来自分类Dev

无法在Ubuntu上连接到互联网

来自分类Dev

VirtualBox上的Linux Mint没有互联网连接

来自分类Dev

Ubuntu在VirtualBox上没有互联网连接

来自分类Dev

无法在Tizen模拟器上连接互联网

来自分类Dev

在android编程上检查互联网连接

来自分类Dev

FortiWiFi 60C上的互联网连接

来自分类Dev

Chrome无法在Ubuntu 16.04上连接到互联网

来自分类Dev

Ubuntu 16.04 上的慢速(无线)互联网连接

来自分类Dev

Mac Mavericks上的互联网速度非常慢

来自分类Dev

Android:检查网络和真实的互联网连接

来自分类Dev

Codenameone:如何检查互联网连接和暂停模式

来自分类Dev

后台的蓝牙和互联网连接(android)

来自分类Dev

连接互联网,Android,Ubuntu和Xbox360

来自分类Dev

苹果企业计划和永久互联网连接

来自分类Dev

设置和网络丢失,无法连接到互联网