Projet
"Chat" distribué avec les Sockets en C

 

On se propose de réaliser un "chat" avec les sockets en C. Au cours de ce projet nous réaliserons plusieurs versions de ce "chat". La dernière version aura pour but de limiter la charge (c'est à dire le travail à faire) des différentes machines.

Première version : version client/serveur

La première version comporte un serveur qui reçoit chaque message et le fait suivre aux autres clients.

On obtient donc une architecture en étoile avec le serveur au centre de l'étoile.

Note : A vous de choisir si vous voulez travailler avec TCP ou UDP. 

 

Deuxième version : version "peer to peer" complètement connectée

Dans cette seconde version, le serveur sert juste d'annuaire et permet à tout nouveau client de dialoguer directement avec les autres clients.

Par la suite, chaque client envoie les messages directement aux autres clients.

On obtient donc une architecture totalement connectée.

Notes : 

 

Dernière version : version "peer to peer" optimale

Dans cette dernière version, on veut optimiser le maillage entre les clients (appelé les Peers ou Pairs en Français). Chaque Peer sera mis en relation avec un nombre restreint d'autres Peers et fera suivre en plus de ses propres messages, les messages envoyés par un autre Peer vers un sous-ensemble de Peers connus.

Ainsi tout message envoyé par un client sera reçu par tout autre client après avoir traversé 0 ou plusieurs clients.

Notes : 

Extensions de l'application

En plus de ce qui est demandé vous pouvez :