【问题标题】:Reachability reachabilityWithAddress does not work可达性reachabilityWithAddress 不起作用
【发布时间】:2011-06-27 11:32:58
【问题描述】:

我正在尝试确定 iphone 是否可以使用以下代码连接到我的 IP 地址

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];

但无论我在 IP 地址中提供什么,它总是说状态是“可访问”。 我做错什么了吗?为什么这行不通?感谢您的洞察力。

【问题讨论】:

  • 尝试关闭 Wi-Fi 和 3G 然后运行测试。
  • 添加 [r startNotifier];检查状态之前
  • 你不应该使用 struct sockaddr(不是 struct sockaddr_in)吗?

标签: iphone reachability


【解决方案1】:

查看此答案 (https://stackoverflow.com/a/5875059/1067154)

SCNetworkReachability Reference

SCNetworkReachability 编程接口允许应用程序 确定系统当前网络配置的状态 以及目标主机的可达性。

当一个数据包由一个远程主机发送时,远程主机被认为是可达的。 应用程序进入网络堆栈,可以离开本地设备。 可达性并不能保证数据包实际上是 主机收到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2017-07-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多