我查看了来自 Apple 的 Reachability 示例和来自“Iphone developer's cook book”的另一个示例
以下是测试 ip/port 可达性的步骤
- 用给定的 ip/port 构造 sockaddr_in 变量。
- 使用地址调用 SCNetworkReachabilityCreateWithAddress
- 调用 SCNetworkReachabilityGetFlags 并查看是否设置了 kSCNetworkFlagsReachable。
我发现无论我测试什么有效(有效范围)ip/port,我的代码都说它是可访问的,即使在我 ping 或 telnet 测试时它们实际上是不可访问的。
(我看过其他 SO 帖子,其中对特定 ip 的可达性测试总是成功)
可达性可达性WithAddress 不起作用
是 SCNetworkReachability.. 调用仅检查参数(IP 地址或主机名)的有效性吗?即,他们是否真的向给定地址发送数据包(或连接)以测试可达性?
我可以自己实现带有超时的异步连接,但是超时不应该被苹果评论者拒绝多长时间是微妙的。(我担心如果时间太长,苹果评论者可能会认为我的应用程序没有处理网络可达性全部)
谢谢