:: Enseignements :: Master :: M1 :: 2015-2016 :: Programmation d'applications réseaux ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
Matou : service de chat
|
Le but du projet Matou est de réaliser un service de discussions et d'échanges de fichiers.
Principe de l'application
Les clients se connectent à un serveur. Chaque client connecté est identifié par un pseudonyme.
Le serveur doit garantir que deux clients ne peuvent pas avoir le même pseudonyme.
Une fois connectés et identifiés par un pseudonyme, les clients peuvent:
- envoyer des messages qui seront transmis à tous les clients connectés.
- envoyer des messages privés et des fichiers à un autre utilisateur.
Par rapport à un serveur de chat standard (type IRC), la particularité de ce projet est que tous les messages privés et les fichiers sont envoyés par une connection directe entre les deux clients: le serveur permet juste dans ce cas de s'échanger les adresses des clients.
Le protocole devra permettre aux clients de faire des demandes de communication privée et d'accepter/refuser la communication privée.
Une fois que la communication privée entre deux clients est établie, l'envoi/réception de fichiers ne doit pas bloquer les messages entre ces deux clients.
Travail attendu
Le travail est à réaliser en binôme (pas plus, pas moins).
-
Vous devrez concevoir votre propre protocole qui décrira le format des échanges entre le serveur et les clients. Vous rédigerez une RFC qui
présente en détail le protocole. Pour un exemple de RFC, vous pouvez regarder la RFC du protocole TFTP.
-
Vous devrez réaliser un client et un serveur qui implémente votre protocole. Le serveur devra impérativement être implémenté en mode non-bloquant.
Dates
Les trois étapes du rendu seront évaluées à part égales.
Attention: si rien n'est rendu le 21 mars, la note globale du projet sera 0 et il ne sera pas possible d'accéder aux étapes suivantes.
- Rendu de la RFC 21 Mars 2016
- Démonstration et soutenance de la première version de votre code 15 Avril 2016
- Rendu de la version finale 1er Mai 2016
© Université de Marne-la-Vallée