1. Introduction

Dans ce tutoriel, nous apprendrons à utiliser le contrôle Winsock pour construire une application simple basée sur le protocole DayTime. Le protocole DayTime permet de donner à un client qui se connecte sur la machine la date et l'heure système du serveur.

Pour utiliser le protocole DayTime, il suffit de se connecter sur le port 13 d'un serveur, qui va ainsi donner son heure système. Cependant, la plupart des administrateurs désactivent le port DayTime pour des raisons de charge et de sécurité. Néanmoins, certains serveurs publics ont leur port DayTime activé, par exemple w3.org, dont nous nous servirons dans cet exemple.

2. Conception du client DayTime

  • Créez un nouveau projet Visual Basic
  • Ajoutez le contrôle Winsock (Ctrl-T, puis sélectionnez Microsoft Winsock Control 6.0, puis Appliquer)
  • Placez une instance du contrôle Winsock (qui s'appellera par défaut Winsock1) sur la feuille
  • Placez deux champs textes sur la feuille. Nommez-les txtHote et txtDateTime.
  • Placez deux boutons de commande, nommés btnConnecter et btnQuitter sur la feuille. Mettez la propriété Caption respectivement à "Connecter" et "Quitter" sur les deux boutons.
  • Disposez les contrôles comme sur le dessin ci-dessous:

Image non disponible

  • Maintenant, on va remplir le code. Tout d'abord, celui de fermeture de l'application:
 
TéléchargerCacherSélectionnez
  • Ensuite, celui exécuté au chargement du formulaire. On va utiliser par défaut l'hôte w3.org pour obtenir la date/heure:
 
TéléchargerCacherSélectionnez
  • Ensuite, nous allons écrire la routine de connexion, qui va s'exécuter quand nous allons cliquer sur "Connecter"
 
TéléchargerCacherSélectionnez
  • Puis, on va écrire le code qui traite l'arrivée des données, qui sera bien entendu placé dans l'événement Winsock1_DataArrival:
 
TéléchargerCacherSélectionnez

Remarque: vbString est un paramètre optionnel qui indique que la variable dans laquelle on récupère les données est une chaîne de caractères. Il est possible d'utiliser d'autres types de paramètres, par exemple si on veut directement récupérer le résultat dans une variable d'un type connu. Néanmoins, vbString est un type suffisamment générique (qu'on peut ensuite convertir) qu'il est préférable d'utiliser.

  • Enfin, nous allons écrire un code de gestion d'erreur. A chaque fois qu'une erreur réseau se produit, l'événement Winsock1_Error est déclenché. Le paramètre Number contient alors le code d'erreur et le paramètre Description la description de l'erreur:
 
TéléchargerCacherSélectionnez
  • Voilà, c'est terminé!

Télécharger le code source du projet (2ko, Zip)

Maintenant, si tout est clair, passez à l'atelier suivant, où on apprendra à concevoir un client Finger.