La accesibilidad de la networking iOS – no parece funcionar

Estoy siguiendo ¿Cómo comprobar si hay una connection a Internet activa en iOS o OSX? y http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html para probar la conectividad, pero estoy encontrando algunos problemas bastante básicos.

Por ejemplo, estoy ejecutando una API .NET fuera de otra máquina y luego intentando conectarme a ella a través de mi Mac mini.

1) Cuando IIS se está ejecutando, todo funciona como debería, ¡estaba emocionado de que funcione!

2) Puedo cerrar IIS por completo (obviamente, el host no se puede alcanzar), pero mi reachabilityWithHostName sigue informando que el host es accesible.

¿Algunas ideas?

Consulte la Referencia de RNetworkReachability .

La interfaz de progtwigción SCNetworkReachability permite que una aplicación determine el estado de la configuration de networking actual de un sistema y la accesibilidad de un host de destino. Se considera que un host remoto es accesible cuando un package de datos, enviado por una aplicación a la stack de networking, puede abandonar el dispositivo local. La capacidad de acceso no garantiza que el package de datos sea recibido realmente por el host.

Activar y desactivar IIS solo impide que su server reciba requestes web como ftp / http y no impide que el dispositivo envíe correctamente un package de datos.

Hace un time utilicé esta respuesta para resolver mi problema. Encontré una solución mejor y la publiqué aquí para otros que la puedan encontrar útil.

Hay un buen código de muestra proporcionado por Apple.

Descargue el código de muestra aquí

Incluya los files Reachability.h y Reachability.m en su proyecto. Eche un vistazo a ReachabilityAppDelegate.m para ver un ejemplo sobre cómo determinar la accesibilidad del host, la accesibilidad mediante Wi-Fi, por WWAN, etc. Para una simple comprobación de la accesibilidad a la networking, puede hacer algo como esto

Reachability *networkReachability = [Reachability reachabilityForInternetConnection]; NetworkStatus networkStatus = [networkReachability currentReachabilityStatus]; if (networkStatus == NotReachable) { NSLog(@"There IS NO internet connection"); } else { NSLog(@"There IS internet connection"); } }