【问题标题】:Significance of number in each flag returned - SCNetworkReachabilityFlags返回的每个标志中数字的重要性 - SCNetworkReachabilityFlags
【发布时间】:2013-03-11 14:22:38
【问题描述】:

我正在尝试以编程方式在 iOS 应用程序内的 iPad 中检查 VPN 连接是打开还是关闭。 下面的代码总是说我组织中的给定主机总是可以访问的 即使 iPad 中的 VPN 连接已关闭。但是,当我打印使用“SCNetworkReachabilityGetFlags”api 获得的标志时,它显示 VPN 关闭和 VPN 开启之间存在差异。每当连接 VPN 时,标志打印“3”,当 VPN 关闭时,标志打印“2”。

我的问题是

  1. 我可以使用这个标志来确定 VPN 连接吗?
  2. 这些数字有什么意义?
  3. 谁能提供有关这些标志的更多信息?

以下是我的代码:

bool success = false;

const char *host_name = [@"<<host name here>>"
                         cStringUsingEncoding:NSASCIIStringEncoding];

SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
                                                                            host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
NSLog(@"success=%d",flags);
bool isAvailable = success && (flags & kSCNetworkFlagsReachable) &&
!(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable) {
    NSLog(@"Host is reachable: %d", flags);
}else{
    NSLog(@"Host is unreachable");
}

【问题讨论】:

    标签: ios ipad vpn reachability


    【解决方案1】:

    不管怎样,这些标志在SCNetworkReachability Reference 中定义。如您所见,这些是按位标志,因此“2”表示仅设置了 kSCNetworkReachabilityFlagsReachable,而“3”表示同时设置了 kSCNetworkReachabilityFlagsTransientConnection

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2019-03-18
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多