2011-02-15 10 views
5

Estoy tratando de determinar si el iPhone se puede conectar a mi dirección IP utilizando siguiente códigoAccesibilidad reachabilityWithAddress no funciona

struct sockaddr_in server_address; 
server_address.sin_len = sizeof(server_address); 
server_address.sin_family = AF_INET; 
server_address.sin_port = htons(8888); 
server_address.sin_addr.s_addr = inet_addr("1.2.3.4"); 
Reachability *r = [[Reachability reachabilityWithAddress:&server_address ] retain]; 
NetworkStatus internetStatus = [r currentReachabilityStatus]; 

Pero siempre dice que el estado es regarless 'alcanzable' de lo que doy en el Dirección IP. ¿Estoy haciendo algo mal? ¿Por qué no funciona esto? Gracias por tu visión.

+1

Pruebe apagar el Wi-Fi y 3G y luego ejecutar la prueba. –

+0

add [r startNotifier]; antes de comprobar el estado –

+0

¿No debería estar utilizando struct sockaddr (no struct sockaddr_in)? – Jeff

Respuesta

0

checkout esta respuesta (https://stackoverflow.com/a/5875059/1067154)

SCNetworkReachability Reference

La interfaz de programación SCNetworkReachability permite que una aplicación para determinar el estado de configuración de la red actual de un sistema de y la accesibilidad de un host de destino.

Un host remoto se considera alcanzable cuando un paquete de datos enviado por una aplicación a la pila de red puede salir del dispositivo local. La accesibilidad no garantiza que el paquete de datos sea realmente recibido por el host.