Consultez le manuel de telnet pour trouver comment interroger un service particulier. Vous pouvez interroger un serveur quelconque, ou bien la machine sur laquelle vous êtes connecté en l'appelant localhost.Nous allons écrire un client simple en C qui va effectuer la même action. Le squelette du code se trouve dans le fichier client-daytime.c.
Quel est le type de protocole utilisé pour le service daytime ? Quel est le numéro de port associé ?
Où peuvent se poser des problèmes de format des données numériques (big endian/little endian) ? Pourquoi n'a-t-on pas utilisé ici de fonctions de conversion telles que htonl ?
Complétez le code du client aux emplacements indiqués par des commentaires commençant par /* TP:.
Utilisez telnet pour interroger le service finger, et comprendre comment il fonctionne (la page de manuel de finger peut aider).
Extrayez du programme précédent une fonction simple permettant d'ouvrir une socket sur la machine et le port précisés. Le squelette de cette fonction se trouve dans le fichier connexion.c.
L'interface de la fonction seraint connexion-tcp (char* serveur, int port);Le port sera transmis dans le codage standard du client, il ne faut pas oublier de le convertir dans le codage réseau à l'intérieur de la fonction.
La valeur de retour sera le descripteur de socket obtenu, -1 en cas d'erreur.
En utilisant la fonction ainsi définie, envoyez le nom d'utilisateur donné en paramètre au service finger et affichez le résultat de le requête.
Utilisez le squelette fourni dans serveur-daytime.c et ajoutez les appels nécessaires pour établir la socket, la mettre en état d'attente et traiter les connexions.
Lancez le serveur sur un port supérieur à 1024 et essayez de l'interroger avec la commande telnet ainsi qu'avec le client daytime écrit précédemment (ce qui peut nécessiter une recompilation pour spécifier le numéro de port).
Si ce n'est pas déjà fait, isolez la fonction de traitement de la connexion dans une fonction à part (traite_requete).
Modifiez le code du fichier serveur-addition.c pour accomplir la tâche précisée.
Connectez-vous au serveur indiqué via la commande telnet et testez le bon fonctionnement du serveur.
Lancez depuis plusieurs terminaux plusieurs connexions simultanées vers le même serveur d'addition. Qu'observez-vous ?
Modifiez le code de serveur-addition2.c de manière à créer un nouveau processus pour gérer chaque nouvelle connexion.
Lancez depuis plusieurs terminaux plusieurs connexions simultanées vers le nouveau serveur d'addition.
Ce document a été traduit de LATEX par HEVEA.