Кондиционер сетевого соединения при 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;
}
}