Ios AFNetworkReachabilityManager在不可访问时返回可访问
在iOS应用程序中,我希望监视网络中多个IP地址的可达性 我想创建多个Ios AFNetworkReachabilityManager在不可访问时返回可访问,ios,swift,afnetworking,afnetworking-2,Ios,Swift,Afnetworking,Afnetworking 2,在iOS应用程序中,我希望监视网络中多个IP地址的可达性 我想创建多个AFNetworkReachabilityManager对象来监视这些IP 因此,我按照以下方式创建管理器: var server_address = sockaddr_in( sin_len: __uint8_t(sizeof(sockaddr_in)), sin_family: sa_family_t(AF_INET), sin_port: in_port_t(80), sin_addr:
AFNetworkReachabilityManager
对象来监视这些IP
因此,我按照以下方式创建管理器:
var server_address = sockaddr_in(
sin_len: __uint8_t(sizeof(sockaddr_in)),
sin_family: sa_family_t(AF_INET),
sin_port: in_port_t(80),
sin_addr: in_addr(s_addr: inet_addr("10.0.0.60")),
sin_zero: (0, 0, 0, 0, 0, 0, 0, 0)
);
item.reachabilityManager = AFNetworkReachabilityManager(forAddress: &server_address);
项
对象有一个属性可访问性管理器
,该属性存储管理器,并且不超出范围
初始化管理器后,我通过以下方式为管理器设置可达性状态更改块
,同时启动管理器的监视
item.reachabilityManager!.setReachabilityStatusChangeBlock({ (status) -> Void in
switch(status) {
case AFNetworkReachabilityStatus.NotReachable, AFNetworkReachabilityStatus.Unknown:
NSLog("UNREACHABLE: \(item.name)");
case AFNetworkReachabilityStatus.ReachableViaWiFi, AFNetworkReachabilityStatus.ReachableViaWWAN:
NSLog("REACHABLE \(item.name)");
}
});
item.reachabilityManager!.startMonitoring();
如果我在开始监视()
之后立即执行可访问的
,它将返回false,,这是我期望的
之后,我的reachabilityStatusChangeBlock
被触发,它告诉我我正在监视的IP是可访问的,而我确信它是不可访问的(我目前甚至不在相同的IP范围内,对该IP的ping当然表明另一端没有应答)
如果我用未知域名实例化AFNetworkReachabilityManager
,它将正确返回状态。所以我知道经理工作正常
我可以想象,造成这种情况的原因之一是我创建的用于使用管理器的sockaddr\u变量,也许我在某个地方弄乱了构造函数中的一个参数