1. Comment marche Finger?

Finger est un service tournant sur le port 79 d'une machine UNIX et permettant de connaître l'état du système: qui est connecté sur la machine, depuis combien de temps, depuis quel terminal etc... Pour cette raison, il est souvent désactivé par les administrateurs système. Par conséquent, si vous voulez trouver une machine pour tester le protocole Finger, il va falloir vous débrouiller :o)

Une fois connecté sur la machine, on peut envoyer deux choses:

  • Soit un CrLf simple, auquel cas obtient la liste des utilisateurs présents sur le système
  • Soit un login, et dans ce cas on obtient des informations détaillées sur l'utilisateur en question

2. Concevoir un client Finger simple

  • Démarrez un projet VB, rajoutez Winsock aux références et placez une instance de Winsock sur la feuille.
  • Placez un TextBox appelé txtInput sur la feuille.
  • Placez un TextBox appelé txtOutPut sur la feuille. Mettez sa propriété MultiLine sur True et sa propriété ScrollBars sur "2-Vertical".
  • Ajoutez deux boutons de commande, nommés btnFinger et btnQuitter sur la feuille.
  • Arrangez le tout comme suit:

Image non disponible

  • Maintenant, on va écrire du code :o). Tout d'abord, allez dans le code des déclarations du formulaire et tapez:
 
TéléchargerCacher/Afficher le codeSélectionnez
  • Ensuite, le code d'ouverture et de fermeture de l'application:
 
TéléchargerCacher/Afficher le codeSélectionnez
  • Maintenant, on va écrire le code de connexion. Notre programme va reconnaître deux syntaxes possibles: soit "user@machine", auquel cas on va demander des informations sur un utilisateur précis, soit "machine", auquel cas on demande la liste des utilisateurs:
 
TéléchargerCacher/Afficher le codeSélectionnez
  • Tant qu'on y est, on rajoute le code de gestion d'erreurs Winsock:
 
Sélectionnez
1.
2.
3.
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
     MsgBox "Erreur n°" & Number & " -- " & Description, vbInformation
End Sub
  • Maintenant, il va falloir dire à Winsock qu'une fois connecté au serveur, il faut envoyer une information à la machine: soit un simple CrLf si on n'a pas de nom utilisateur précis à spécifier, soit un nom suivi de CrLf. Pour cela, on utilise l'événement Winsock1_Connect():
 
TéléchargerCacher/Afficher le codeSélectionnez
  • Enfin, il faut gérer l'arrivée des données et leur affichage:
 
TéléchargerCacher/Afficher le codeSélectionnez
  • Compilez, exécutez, c'est fini.

Télécharger le code source de l'exemple (2ko, ZIP)

Voilà, j'espère qu'après ces deux exemples, vous y voyez plus clair dans la programmation Winsock, qui après tout n'est pas si compliquée que ça. On va enchaîner avec un troisième exemple: le service Whois.