27

正確なタイミングを必要とするアプリケーションを作成しています。この質問をした後、NTP または単純な NTP を使用して調査することにしました。

iPhone 向けのこれらのプロトコルのオープン ソース実装はありますか? これまでのところ、壊れたリンクを見つけることができました。また、NTP にはC リファレンス実装があることも認識しているので、iPhone で動作させるにはどれだけの労力が必要かを調べようとしています。

更新: 機能しているリンクがあると思っていましたが、機能するのはファイルリンクではなく、テキストのみを保存する Wayback Machineです。

4

7 に答える 7

18

ios-ntpという名前の小さなiOSライブラリがあります。私は過去に1つのプロジェクトでそれを使用しましたが、それはかなりうまく機能しているように見えました。

2013年半ばの時点で、元のios-ntpプロジェクトにはいくつかの欠落部分があるため、元のsvnリポジトリをgithubにミラーリングしました。ここでコードの動作バージョンをチェックアウトできます:https ://github.com/jessedc/iOS-ntp

于 2010-11-08T04:12:57.040 に答える
5

おそらく、 OpenNTPDからコードを引っ張ることから始めるでしょう。

于 2010-02-16T00:11:14.623 に答える
3

NTPを使用する必要があるが、iPhone(またはiPod)の時計を信頼したくない場合は、いつでもソケット(またはCocoaストリーム)を使用してサーバーにクエリを実行できます。これは、世の中で最も単純なネットワークトランザクションの1つです。

ココアストリーム

于 2010-02-24T21:59:20.800 に答える
3

商用アプリケーションを開発していない場合は、Linux ソースをのぞいてみてください。

http://packages.ubuntu.com/source/lucid/ntp

于 2010-02-22T19:08:00.243 に答える
2

あなたが作成しているアプリケーションはわかりませんが、クロックを信頼することがセキュリティや (ゲームの場合は) チート防止などの重要な機能である場合は、NTP などのオープン プロトコルに十分注意する必要があります。 - 詐欺師は、あなたの NTP リクエストに対して中間者攻撃を行い、アプリに聞きたいことを伝えることができます。

これが問題になる可能性がある場合は、信頼できる時刻の信頼できる独自のソースをサーバーに構築し (たとえば、独自のタイム サービスを構築し、応答に PK 暗号で署名する)、アプリの内部時計をその時刻に設定します。許容可能なクロック スキュー。

于 2010-02-24T22:49:25.377 に答える
2

商用アプリを開発しているため、他のすべてが失敗した場合、RFC 2030に SNTP プロトコルが記述されています。バックグラウンド タスクを必要とせず、iPhone では使用できない市販のライブラリに関する情報はありません。

于 2010-02-25T22:35:15.557 に答える
1

そのオープン ソースを使用できます: https://github.com/huynguyencong/NHNetworkTime

[[NHNetworkClock sharedNetworkClock] syncWithComplete:^{
        NSLog(@"%s - Time synced %@", __PRETTY_FUNCTION__, [NSDate networkDate]);
    }];

そして使用:

NSDate *networkDate = [NSDate networkDate];
于 2015-09-20T17:51:55.950 に答える