代码之家  ›  专栏  ›  技术社区  ›  JamesSugrue

ICMP和iPhone SDK

  •  5
  • JamesSugrue  · 技术社区  · 15 年前

    我希望在CocoaTouch中实现一个ping类。从我做的谷歌搜索和我看过的旧C代码来看,使用ICMP协议似乎是最好的方法。

    我想我的问题是,iPhone SDK是否支持ICMP,如果不支持,我可以在CoreFoundation网络类中使用什么来代替它?我看过cfhost和cfhoststartinforesolution(主机、kcfhostoreachability和错误),但这更多的是检查主机是否存在,而不是得到响应时间等。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Jim Dovey    15 年前

    是的,理论上你可以这样做。但是,上次我检查您需要以根用户身份运行才能访问发送ICMP跟踪所需的“原始”BSD套接字。至少在Mac上是这样的,所以我假设在iPhone上也是这样。

    您可能想看看SystemConfiguration框架和screachabilityAPI作为替代方案。这些都是异步的,因此您可以潜在地跟踪了解网络延迟所需的时间。

        2
  •  0
  •   Mike Akers    15 年前

    对cfnetwork的东西不确定,但不要忘了,你仍然可以使用所有常见的bsd网络的东西。