title | contributors |
---|---|
CMessenger |
HALLGREN Matthias & MASTRANGELO Julien |
- Cloner le projet :
$ git clone https://github.com/EvolveArt/CMessenger.git
- Installer la librairie openssl si non installée :
$ sudo apt-get install libssl-dev
- Compiler la librairie :
$ cd modules
$ make
- Compiler les programmes Client et Serveur :
$ make
- Lancer le serveur :
$ cd Server
$ ./serveur 5000
- Lancer un client :
$ cd Client
$ ./client localhost 5000 matthias
- Lancer autant de clients que souhaité :
Répéter l'étape n°6
Avec ce projet, le but est d'appliquer nos connaissances en programmation système. Nous avons décider de réaliser un système de Chat Room, similaire à ce que fait Messenger la messagerie de Facebook. Nous utilisons pour celà une architecture statique de Client/Serveur multithread. Le client et le serveur communiquent avec des sockets TCP/IP.
Fonctionnalité | Statut |
---|---|
Création d'une nouvelle Chat Room | ✅ |
Rejoindre une Chat Room existante | ✅ |
Le pseudo choisi est unique | ✅ |
Quitter une Chat Room | ❌ |
Voir les personnes présentes dans la Chat Room (/list) | ✅ |
Envoyer des messages privés (/msg) | ✅ |
Système d'authentification | ✅ |
Log des messages dans journal.log |
✅ |
./include/chatroom.h
: Structures, Enumérations, Prototypes utilisées spécifiquement pour le système de Chat Room../modules/chatroom.c
: Fonctions utiles à la gestion de la liste chaînée de Chat Rooms../Server/serveur.c
: Le Serveur s'occupe d'accepter les connexions des clients et de les assigner à un thread worker précis. Il gère également la liste des Chat Rooms et performe les actions souhaitées par les clients../Client/client.c
: Le Client comporte deux threads.
Le thread principal dans lequel il envoie des données ou des actions au Serveur.
Un thread dans lequel il lit les messages des autres clients que lui envoie le serveur et les affiche.
Les deux seuls contributeurs de ce projet sont : Hallgren Matthias & Mastrangelo Julien
Merci surtout à notre professeur M. Pierre UNY pour ses cours sans lequels ce projet n'aurait pas pu exister.