可达性的reachabilityWithAddress不起作用

时间:2012-08-08 10:41:58

标签: iphone ios reachability

  

可能重复:
  iPhone SDK reachabilityWithAddress issue

我正在尝试使用以下代码确定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];

但它始终表示状态为'Reachable',与我在IP地址中提供的内容无关。我做错了吗?为什么这不起作用?提前谢谢。

1 个答案:

答案 0 :(得分:1)

相同的行为

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

可达性将始终返回TRUE,无论您的HTTP返回码是200还是404都无关紧要。如果您无法使用该解决方案,Prince发布的链接建议您可以

  1. 检查您的互联网可访问性
  2. 根据HTTPRequest触发计时器并检查返回码
  3. 或检查NetReachability

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