Projet de programmation multitâches
Find a file
2022-10-28 10:12:17 +02:00
img First commit 2022-09-13 13:02:40 +02:00
src Make client_sockid non blocking and handle the reading loops 2022-10-28 10:12:17 +02:00
.gitignore Minor changes 2022-09-14 14:11:52 +02:00
architecture.md Rename pipe to make them more clear 2022-10-27 10:19:03 +02:00
Makefile Include header files in Makefile 2022-10-24 22:47:10 +02:00
README.md First commit 2022-09-13 13:02:40 +02:00
TODO Add client_id 2022-10-21 15:08:12 +02:00

Projet de Programmation multitâches

Objectifs

Développer une application multitâche en Java ou en C. Un message envoyé doit contenir le texte, pseudo de l'envoyeur, la date de l'envoi, le destinataire, la date de validité du message. Le destinataire peut être : public, groupe (nomGroupe), privé (pseudo).

Illustration sur un cas concret des problématiques liées à :

  • la synchronisation d'une application client / serveur
  • l'exclusion mutuelle
  • l'interblocage de processus

Prérequis

Programmation en Java / C, thread/processus/socket.

Description

Il faut développer 2 applications :

  • Un serveur composé de plusieurs threads, entre autres :
    • ClientListener qui est à l'écoute des messages entrants
    • ClientSender qui envoie les messages au client
  • Un client composé de 2 tâches :
    • Listener qui retourne sur la sortie standard tous les messages en provenance du serveur
    • Sender qui lit les messages en provenance de l'entrée standard et les envoie au serveur

Remarque :

Afin de libérer le serveur pour accepter d'autres clients, il faut créer une instance de ClientListener ainsi qu'une instance de ClientSender pour chaque nouveau client accepté.

architecture

Notation

  • Mise en oeuvre des tâches serveurs /6 (Dispatcher /3)
  • Mise en place de la communication interprocessus /3
  • Mise en place de la communication par socket /1
  • Mise en oeuvre d'un client /2
  • Application (couche métier) /2
  • Mise en oeuvre d'un protocole de communication /2
  • Compte rendu /4
  • Mise en oeuvre d'une CLI /2