Exercice 0 : une application simple basée sur UDP

Le but de cet exercice est de créer une application serveur-client simple basée sur UDP. La fonctionnalité de l'application est minimale : le serveur reçoit des données des clients et les renvoie aux clients (comme echo). Pour tester l'application, vous pouvez utiliser l'espace d'adressage loopback local.

  • Problème 0 : Créez un en-tête exmp1.header.h qui inclut toutes les librairies que vous prévoyez d'utiliser pour votre application. Consultez les pages man pour compiler une liste des librairies que vous utiliserez - par exemple la page man inet.

  • Problème 1 : Écrivez un programme C exmp1_server.c pour votre serveur, qui doit décrire grossièrement ce qui suit :

    1. Déclaration et initialisation d'une variable svaddr contenant l'adresse IPv4 du serveur.
    2. Lier une socket à une adresse qui sera utilisée pour recevoir des datagrammes - pour les besoins du test, l'adresse wildcard peut être utilisée (n'oubliez pas de la mettre dans l'ordre des octets du réseau).
    3. Le corps principal du code, qui est une boucle infinie des actions suivantes:
      1. Réception d'un datagramme.
      2. Imprimer sur stdout le nombre d'octets qu'il contient et l'adresse de l'expéditeur (y compris le port).
      3. Renvoyer les données.
  • Problème 2 : Utilisez un utilitaire de votre choix (par exemple netcat) pour tester si le serveur fonctionne.

  • Problème 3 : Ecrivez un programme C décrivant le client de cette application, qui doit prendre comme arguments l'adresse du serveur et les données à envoyer. Le programme effectue ensuite les opérations suivantes:

    1. Déclare et initialise une variable contenant l'adresse du serveur (le port étant déclaré dans l'en-tête que vous avez créé précédemment). N'oubliez pas de convertir l'adresse au format approprié (utilisez inet_pton) et de mettre le port dans l'ordre des octets du réseau.
    2. Pour chaque morceau de données fourni comme argument, le client l'envoie au serveur et imprime la réponse du serveur.

Devoir à rendre avant le 24/03/2023 à 23:59 GMT+1

  • Problème 0 : Modifiez le programme précédent de façon à ce que l'application utilise maintenant une socket de flux basée sur TCP.
  • Problème 1 : Étendez les fonctionnalités de cette nouvelle application afin qu'elle puisse gérer plusieurs connexions de clients à la fois.

Site built with MkDocs and a slightly-modified version of Terminal for MkDocs.
Last update: September 2023