Кондиционер сетевого соединения при 100% потере пакетов - почему я неправильно получаю статус доступности интернета?

Я проверяю состояние доступности интернета с помощью класса "Доступность". Но во время тестирования, если я устанавливаю 100% потерю пакетов в настройках разработчика, я все равно получаю статус достижимости как "ReachableViaWiFi". Я в замешательстве, что происходит. Разве это не должно быть "NotReachable" в этой ситуации?

Вот мой фрагмент кода:

Reachability *networkReachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [networkReachability currentReachabilityStatus];

if(networkStatus == NotReachable){
    NSLog(@"NotReachable");
}
else if(networkStatus == ReachableViaWiFi){
    NSLog(@"ReachableViaWiFi");
}
else if(networkStatus == ReachableViaWWAN){
    NSLog(@"ReachableViaWWAN");
}

Есть ли другой способ дать мне статус ЛОЖЬ в этой ситуации?

2 ответа

Решение

Количество потерянных пакетов не влияет на достижимость. В конце концов, это может быть просто на мгновение (вы взяли свой телефон в экранированную комнату или просто включили тяжелый электрический двигатель). Доступность - это то, что ваш WiFi, 3G или Ethernet на Mac включен. Дело не в качестве связи.

Это сработало для меня:

-(BOOL)connected
{
    Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];
    NetworkStatus internetStatus = [r currentReachabilityStatus];

    if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN))
    {
        return NO;
    }
    else
    {
        return YES;
    }
}
Другие вопросы по тегам