Minitalk est un projet de l'école 42 qui consiste à implémenter un système de communication entre un client et un serveur en utilisant exclusivement des signaux UNIX. Ce projet permet de se familiariser avec la gestion des signaux et les communications inter-processus.
Le projet se compose de deux programmes :
-
Le serveur :
- Doit être lancé en premier.
- Affiche son PID (Process ID) au lancement.
- Reçoit une chaîne de caractères envoyée par le client et l'affiche.
-
Le client :
- Prend deux arguments en paramètre :
- Le PID du serveur.
- Une chaîne de caractères à transmettre.
- Transmet la chaîne au serveur à l'aide de signaux UNIX.
- Prend deux arguments en paramètre :
- Gestion des signaux UNIX (
SIGUSR1
,SIGUSR2
). - Communication inter-processus.
- Utilisation des fonctions comme
kill
,signal
,sigaction
, etpause
. - Respect des normes de codage imposées par l'école 42.
- Implémentation des programmes
client
etserver
. - Le serveur doit pouvoir :
- Recevoir et afficher les chaînes envoyées par le client.
- Gérer plusieurs clients successivement sans redémarrer.
- Les signaux utilisés pour la communication sont exclusivement
SIGUSR1
etSIGUSR2
.
Les bonus incluent :
- Confirmation de réception de chaque message par le serveur en renvoyant un signal au client.
- Prise en charge des caractères Unicode.
Les bonus ne sont évalués que si la partie obligatoire est parfaitement fonctionnelle.
-
Cloner le dépôt :
git clone https://github.com/0x2Anessie/42-MiniTalk.git
cd 42-MiniTalk
-
Compiler le projet:
make
-
Ouvrir deux terminaux.
-
**Lancer le serveur dans un des terminaux :
./server
-
Lancer le client dans l'autre terminal :
./client <PID_du_serveur> "Votre message ici"
-
Pour le premier bonus le server devrait envoyer une confirmation de reception du message du client.
-
Pour le deuxieme, il suffit d'envoyer un caractere unicode avec le client et voir si le serveur le prend en charge.
- Le dépôt Git doit contenir :
- Les fichiers sources nécessaires pour les programmes
client
etserver
. - Un
Makefile
avec les règles suivantes :make
: Compile les programmesclient
etserver
.make clean
: Supprime les fichiers objets.make fclean
: Supprime les fichiers objets et les exécutables.make re
: Recompile tout depuis le début.
- Les fichiers sources nécessaires pour les programmes
- Tous les fichiers inutilisés ou non demandés ne doivent pas être inclus dans le dépôt.
- La norme de l'école 42 doit être strictement respectée.
- Le projet doit être fonctionnel et exempt de fuites mémoire.
Ce projet est soumis aux règles de l'école 42.