gpt4 book ai didi

iphone - (iphone) 特定 IP/端口的可达性测试?

转载 作者:行者123 更新时间:2023-12-03 20:54:37 32 4
gpt4 key购买 nike

我查看了苹果的可达性示例和“Iphone 开发人员食谱”中的另一个示例

以下是测试 IP/端口可达性的步骤

  1. 使用给定的 ip/端口构造 sockaddr_in 变量。
  2. 使用地址调用 SCNetworkReachabilityCreateWithAddress
  3. 调用 SCNetworkReachabilityGetFlags 并查看 kSCNetworkFlagsReachable 是否已设置。

我发现无论我测试什么有效(有效范围)IP/端口,我的代码都表示它是可访问的,即使在我 ping 或 telnet 测试时它们实际上无法访问。
(我看过其他 SO 帖子,其中对特定 ip 的可达性测试总是成功) Reachability reachabilityWithAddress does not work

SCNetworkReachability..调用是否仅检查参数(IP 地址或主机名)的有效性?即,他们实际上是否向给定地址发送数据包(或连接)以测试可达性?

我可以自己实现带有超时的异步连接,但是超时应该多长时间才不会被苹果审阅者拒绝,这是一个微妙的问题。(我担心如果需要太长时间,苹果审阅者可能会认为我的应用程序没有处理网络可达性)

谢谢

最佳答案

根据以上评论回答您的问题,根据SCNetworkReachability Reference

A remote host is considered reachable when a data packet, sent by an application into the network stack, can leave the local device. Reachability does not guarantee that the data packet will actually be received by the host.

这将无法检查服务器的状态,但只能确保它可以获取数据包。

Apple 希望您的应用程序在出现任何网络相关问题时优雅地失败,第一步是使用 Reachability 检查互联网是否可用。如果可达性失败,您可以假设您无法连接服务器并立即提醒用户。接下来的步骤是正确处理服务器返回的错误,例如 400 错误请求、404 文件未找到、设置合理的超时以及在长时间下载期间不阻塞 UI,同时显示某种状态指示器。

关于iphone - (iphone) 特定 IP/端口的可达性测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886788/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com