我希望在 Cocoa-Touch 中实现一个 Ping 类。从我做过的谷歌搜索和我看过的旧 c 代码来看,似乎使用 ICMP 协议(protocol)是最好的方法。
我想我的问题是,iPhone SDK 是否支持 ICMP,如果不支持,我可以使用 CoreFoundation Network 类中的任何内容代替吗?我查看了 CFHost 和 CFHostStartInfoResolution(host, kCFHostReachability, &error) 但更多的是检查主机是否存在,而不是花时间响应等。
最佳答案
是的,理论上你可以这样做。然而,上次我检查你需要以 root 身份运行才能访问发送 ICMP 跟踪所需的“原始”BSD 套接字。至少在 Mac 上是这样,所以我认为在 iPhone 上也是如此。
您可能想看看 SystemConfiguration 框架和 SCReachability API 作为替代方案。这些都是异步的,因此您可以跟踪了解网络延迟所需的时间。
关于objective-c - ICMP 和 iPhone SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837964/