Frage

Ich schreibe eine Anwendung, die ein genaues Timing erfordert. diese Frage Nach der Frage, habe ich beschlossen, mit NTP zu untersuchen, oder vielleicht einfache NTP.

Gibt es eine Open-Source-Implementierung dieser Protokolle für das iPhone? Bisher habe ich finden verwaltet ein gebrochen Link . Ich bin mir auch bewusst, dass NTP eine C Referenzimplementierung hat, so versuche ich, wie viel zu sehen Anstrengung, die es erfordern würde, es auf dem iPhone funktioniert.

Update: Ich dachte, ich hätte einen funktionierenden Link, aber es ist auf die Wayback Machine, die nur Text speichert, keine Dateien link dass Werke .

War es hilfreich?

Lösung

Es gibt eine kleine Bibliothek mit dem Namen iOS ios-ntp . Ich habe es in einem Projekt in der Vergangenheit verwendet, und es schien ziemlich gut zu funktionieren.

Ab Mitte 2013 der ursprünglichen ios-ntp Projekt hat ein paar fehlenden Teile, so dass ich die ursprüngliche SVN-Repository auf GitHub gespiegelt haben. Sie können hier eine funktionierende Version des Codes auszuchecken: https://github.com/jessedc/iOS- ntp

Andere Tipps

würde ich wahrscheinlich starten, indem Code ziehen von OpenNTPD .

Wenn Sie nicht eine kommerzielle Anwendung, Blick auf dem Linux-Source-Entwicklung.

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

Wenn Sie NTP verwenden müssen, wollen aber nicht das iPhone (oder iPod) Uhr vertrauen, können Sie immer nur Steckdosen (oder Cocoa-Streams) und abfragen, um den Server selbst. Es ist eine der einfachsten Netzwerk-Transaktionen gibt.

Cocoa Streams

Ich weiß nicht, welche Anwendung Sie erstellen, aber wenn die Uhr im Vertrauen ein kritisches Merkmal seiner Sicherheit ist oder (im Fall des Spiels) zu betrügen Prävention, etc, dann müssen Sie von offenen Protokollen sehr vorsichtig sein, wie NTP-- ein Betrüger könnte ein man-in-the-Middle auf Ihrem NTP Anfrage tun und Ihre App sagen, was er wollte, dass du hören.

Wenn dies möglicherweise ein Anliegen ist, wollen Sie Ihre eigene vertrauenswürdige Quelle der Wahrheit für die Zeit in Ihrem Server (zB bauen Sie Ihre eigene Zeit Dienst und melden Sie Ihre Antworten mit PK Krypto) zu bauen, und stellen Sie Ihre App die interne Uhr zu diesem innerhalb eines gewissen akzeptablen Taktverschiebung.

Da Sie eine kommerzielle App entwickeln, wenn alle Stricke reißen, RFC 2030 beschreibt das SNTP-Protokoll. Ich habe keine Informationen über kommerziell verfügbaren Bibliotheken, die nicht über eine Hintergrundaufgabe erfordert, welche das iPhone lassen Sie nicht verwenden.

können Sie das Open-Source verwenden: https://github.com/huynguyencong/NHNetworkTime

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

Und Verwendung:

NSDate *networkDate = [NSDate networkDate];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top