My Teams est un système de communication client-serveur TCP qui illustre les principes de base de la programmation réseau. Ce projet permet aux clients de se connecter à un serveur, d'envoyer des messages qui sont ensuite diffusés à tous les clients connectés, démontrant ainsi un échange de données en temps réel via TCP.
- Serveur TCP : Gère les connexions clients entrantes sur un port spécifié et prend en charge plusieurs clients simultanément.
- Client TCP : Se connecte au serveur et permet à l'utilisateur d'envoyer des messages. Les messages sont reçus de tous les clients connectés, permettant ainsi une communication interactive.
- Gestion Multi-Clients : Utilise
select()
pour gérer de multiples connexions clients de manière non bloquante, sans recourir àfork()
, ce qui améliore l'efficacité du serveur.
- Un système d'exploitation Linux, macOS ou compatible UNIX.
- Le compilateur GCC pour la compilation des programmes.
- Make pour automatiser la compilation avec le
Makefile
fourni.
Un Makefile
est fourni pour faciliter la compilation des programmes serveur et client. Suivez ces étapes pour compiler :
- Ouvrez un terminal dans le répertoire du projet.
- Exécutez la commande suivante pour compiler le serveur et le client :
Les exécutables seront placés dans le dossier
make
bin/
.
Pour lancer le serveur, exécutez :
./bin/serveur <port>
Remplacez <port>
par le numéro de port sur lequel le serveur doit écouter.
Pour démarrer un client, exécutez :
./bin/client <adresse_serveur> <port> <pseudo>
Remplacez <adresse_serveur>
par l'adresse IP du serveur, <port>
par le numéro de port, et <pseudo>
par le nom d'utilisateur souhaité.
Ce projet a été développé dans un contexte académique pour approfondir la compréhension de la programmation réseau, l'architecture client-serveur et les protocoles TCP/IP. Il vise à offrir une expérience pratique de la gestion de connexions réseau simultanées dans un environnement de serveur.
Bien que fonctionnel, EchoNet est un projet à visée éducative et pourrait ne pas être adapté à un usage en production sans modifications supplémentaires.
EchoNet est mis à disposition sous Licence MIT. Pour plus de détails, consultez le fichier LICENSE
.