> Tech > Le programme SNTP Client

Le programme SNTP Client

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Chaque jour, l'horloge d'un PC standard peut gagner ou perdre quelques secondes. Le seul fait d'éteindre et de rallumer un PC peut la modifier de plusieurs secondes. Une poignée d'anomalies du système d'exploitation risquent d'affecter l'heure de l'horloge du PC. Ainsi, si l'on ouvre l'application horloge Windows 95/98 depuis le

Le programme SNTP Client

Panneau de Configuration (Date/Heure) ou sur la barre des tâches et si l’on
modifie le mois ou l’année, l’horloge du PC recule de plusieurs secondes. La plupart
des applications PC tolèrent une différence de quelques secondes, voire de quelques
minutes. Mais s’il faut vraiment préserver l’exactitude de l’horloge, il faut
la synchroniser périodiquement à  l’aide d’une source externe plus précise, comme
un serveur NTP sur Internet ou sur l’AS/400.

Il est possible de télécharger l’un des nombreux sharewares peu coûteux et clients
SNTP gratuits à  partir d’Internet, pour synchroniser son PC avec un serveur NTP
(l’encadré « Ressources » indique plusieurs sources de sharewares). Mes programmes
serveur et client SNTP peuvent être téléchargés gratuitement (depuis le site de
NEWSMAGAZINE, http://www.newsmag.com).
Mais l’objet du présent article est de montrer comment coder sa propre application
sockets client/serveur. Avec ces mêmes techniques, vous pourrez ensuite coder
d’autres types d’applications de communications TCP/IP.

Comme je l’ai déjà  indiqué ci-dessus, le programme client SNTP laisse à  l’utilisateur
le soin de sélectionner un serveur NTP dans une liste ou d’entrer le nom ou l’adresse
d’un serveur. La seule autre propriété MSWINSCK cmdSynchronize_Click doit être
définie avant que des communications puissent avoir lieu dans l’adresse IP du
serveur sélectionné.

Une fois l’adresse IP définie, cmdSynchronize_Click appelle la sous-routine ClientFormatSNTPRequest,
implémentée comme une méthode SNTP.CLS, pour formater la demande de message SNTP
du client à  envoyer au serveur. Pour compléter la requête du client, on invoque
la méthode SendData de MSWINSCK pour transmettre les données. Une fois la requête
transmise, le client attend une réponse.

Le contrôle MSWINSCK facilite la réception de données provenant d’un autre programme
parce qu’il fournit un événement DataArrival. Dès que les données arrivent sur
le port socket, tout le code placé dans cet événement s’exécute. En outre, l’événement
DataArrival procure un paramètre indiquant le nombre d’octets reçus.

La sous-routine Winsock1_DataArrival (figure 5) reçoit d’abord les données réelles
puis invoque la méthode SNTP.CLS ClientSetTimeFromServerResponse pour régler l’horloge
du PC à  partir de la réponse du serveur. Selon la RFC 2030, la méthode vérifie
la validité de plusieurs zones et calcule la différence entre le tampon horodateur
NTP et l’heure locale courante, pour obtenir un décalage d’horloge locale. Décalage
qu’utilise la méthode pour mettre à  jour l’horloge du PC. Une fois l’horloge mise
à  jour, le client n’a plus rien à  faire. Il est libre d’envoyer des requêtes à 
d’autres serveurs ou de terminer le programme.

Téléchargez cette ressource

Préparer l’entreprise à l’IA et aux technologies interconnectées

Préparer l’entreprise à l’IA et aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT