-1

可能重复:
iPhone SDKreachabilityWithAddress 问题

我正在尝试确定 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];

但它总是说状态是“可达”,不管我在 IP 地址中提供什么。我做错什么了吗?为什么这行不通?提前致谢。

4

1 回答 1

1

相同的行为

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

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

  1. 检查您的互联网可达性
  2. 触发基于计时器的 HTTPRequest 并检查返回码

或检查NetReachability

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

于 2012-08-08T16:50:02.467 回答