2009-05-08 3 views
5

私はCocoa-TouchでPingクラスを実装しようとしています。私が行ったグーグルと私が見てきた古いCコードから、ICMPプロトコルを使うのが最善の方法だと思われます。ICMPとiPhone SDK

私の質問は、ICMPはiPhone SDKでサポートされていると思いますが、そうでない場合は、代わりにCoreFoundation Networkクラスに何かがありますか? 「私はCFHostを見て、CFHostStartInfoResolution(ホスト、kCFHostReachability、&エラー)を持っていたが、それはホストが存在するかどうかを確認ではなく、CFNetworkはスタッフわからなど

+0

この問題を回避する方法はありますか? – sandy

答えて

1

もちろん、これを理論的に行うことができます。しかし、ICMPトレースを送信するために必要な「未処理の」BSDソケットにアクセスするためには、rootとして実行する必要があることを最後に確認しました。これはMacでも当てはまりますので、iPhoneでも同じです。

代わりに、SystemConfigurationフレームワークとSCReachability APIを参照してください。これらはすべて非同期なので、潜在的にネットワークの待ち時間を知るのにかかる時間を把握できます。

+0

実際、これはOSX 10.2 –

0

を未対応するための時間を得るために、より多くのですが、ドンあなたの処分で通常のBSDネットワーキングを手に入れていることを忘れないでください。

+0

iPhoneでも?恐ろしい – JamesSugrue