Skip to content

Latest commit

 

History

History
108 lines (74 loc) · 2.84 KB

README.md

File metadata and controls

108 lines (74 loc) · 2.84 KB
title contributors
CMessenger
HALLGREN Matthias & MASTRANGELO Julien

CMessenger

Setup


  1. Cloner le projet :
$ git clone https://github.com/EvolveArt/CMessenger.git
  1. Installer la librairie openssl si non installée :
$ sudo apt-get install libssl-dev
  1. Compiler la librairie :
$ cd modules
$ make
  1. Compiler les programmes Client et Serveur :
$ make
  1. Lancer le serveur :
$ cd Server
$ ./serveur 5000
  1. Lancer un client :
$ cd Client
$ ./client localhost 5000 matthias
  1. Lancer autant de clients que souhaité :
Répéter l'étape n°6

Objectif du projet


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és


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

Organisation de l'application


  • ./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.

Crédits


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.