2012-08-08 59 views
-1

可能重复:
iPhone SDK reachabilityWithAddress issue可达性的reachabilityWithAddress不起作用

我试图确定iPhone可以连接到使用下面的代码特定的IP地址(简单的ping):

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("192.168.105.44"); // ip address of a server on LAN 
Reachability *r = [[Reachability reachabilityWithAddress:&server_address ] retain]; 
NetworkStatus internetStatus = [r currentReachabilityStatus]; 

但它总是说状态是'可达'无瑕wha我输入IP地址。我做错了什么?为什么这不工作?提前致谢。

+0

我不能创建一个新的连接,因为我必须已经使用AsyncSocket为相同的ip连接。我只是想检查一些事件,无论我是否连接。 当我们从服务器中拔出LAN电缆时,不会调用onSocketDidDisconnect委托方法。 – 2012-08-08 11:12:48

回答

1

相同的行为

+ (Reachability*) reachabilityWithHostName: (NSString*) hostName; 

可达性将始终返回true,不要紧,如果你的HTTP返回代码将是200或404。如果您无法使用该解决方案张贴王子建议,可以将链接

  1. 检查您的网络可达性
  2. 消防基于定时器的HTTPRequest并检查返回代码

或检查NetReachability

不知道它是否对您有帮助,因为它使用相同的框架,我没有时间自己测试它。