Question

Je suis en train d'écrire une application qui doit respecter un calendrier précis. Après avoir demandé cette question , j'ai décidé d'enquêter en utilisant NTP ou peut-être NTP simple.

Y at-il implémentation open source de ces protocoles pour l'iPhone? Jusqu'à présent, je suis parvenu à trouver un cassé lien . Je suis également conscient que NTP a une C référence mise en œuvre , donc je suis en train de voir à quel point l'effort qu'il faudrait pour le faire fonctionner sur l'iPhone.

Mise à jour: Je pensais avoir un lien de travail, mais il est à la Wayback Machine, qui permet d'économiser du texte, pas des fichiers lien qui fonctionne .

Était-ce utile?

La solution

Il y a une petite bibliothèque iOS nommé ios-ntp . Je l'ai utilisé dans un projet dans le passé et il semblait fonctionner assez bien.

Au mi-2013 le projet ios-PNT d'origine a quelques pièces manquantes, donc je l'ai miroir dépôt svn original GitHub. Vous pouvez checkout une version de travail du code ici: https://github.com/jessedc/iOS- ntp

Autres conseils

Je serais probablement commencer par tirer le code de OpenNTPD .

Si vous n'êtes pas développer une application commerciale, coup d'oeil à la source de Linux.

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

Si vous avez besoin d'utiliser NTP, mais ne veulent pas faire confiance à l'horloge iPhone (ou iPod), vous pouvez toujours utiliser simplement des prises (ou flux de cacao) et vous interroger le serveur. Il est l'un des plus simples opérations de réseau là-bas.

Flux de cacao

Je ne sais pas quelle application vous créez, mais si confiant l'horloge est une caractéristique essentielle de sa sécurité ou (dans le cas du jeu) tricher prévention, etc, alors vous devez être très prudent des protocoles ouverts comme NTP-- un tricheur pourrait faire un homme en-the-middle sur votre demande NTP et prévenez votre application ce qu'il voulait vous entendre.

Si cela est potentiellement un problème, vous aurez envie de construire votre propre source trustable de la vérité pour le temps dans votre serveur (par exemple, construire votre propre service de temps, et signer vos réponses avec Crypto PK) et régler l'horloge interne de votre application pour que, dans un certain décalage d'horloge acceptable.

Puisque vous développez une application commerciale, si tout le reste échoue, RFC 2030 décrit le protocole SNTP. Je n'ai pas d'informations sur les bibliothèques disponibles dans le commerce qui ne nécessitent pas une tâche d'arrière-plan, que l'iPhone ne vous laissera pas utiliser.

Vous pouvez utiliser cette open source: https://github.com/huynguyencong/NHNetworkTime

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

Et:

NSDate *networkDate = [NSDate networkDate];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top