Projet RIP-IHM : chat distribué

Le projet de RIP-IHM consiste à implémenter un outil de discussion instantanée distribué (un chat). Le projet est à faire en binôme.

Description de l'application à réaliser

Voici la fenêtre de l'application coté client :

fenêtre du client

Le fonctionnement de base attendu est le suivant :

En complément du fonctionnement de base, on doit gérer les erreurs de communication quand un client ou le serveur plante. Le serveur doit continuer de fonctionner quoiqu'il arrive et le client doit détecter que le serveur n'est plus joignable (on peut modifier également pour cela le label d'état de connexion).

L'autre complément est d'utiliser un groupe multicast UDP pour éviter de connaitre l'adresse de la socket d'attente de connexion du serveur. Dans les champs adresse IP et port, on rentrera une adresse IP de groupe multicast et le numéro de port du groupe. Quand un client se connecte, il envoie une requête sur ce groupe et attend que le serveur diffuse en réponse sur le groupe son adresse IP et le numéro de port de sa socket d'attente de connexion TCP. Une fois que le client a reçu cette information, il ouvre la connexion TCP avec le serveur.

Notation

Ressources

Contraintes techniques

Le serveur se lancera en ligne de commande en précisant en paramètre le numéro de port de sa socket d'attente de connexion.

Pour le développement du client, reprenez la documentation sur JavaFX de l'UE Conception d'Applications du premier semestre. Il n'est pas nécessaire de générer un JAR qui permettra d'exécuter le client en dehors d'Eclipse, on pourra simplement lancer plusieurs fois le client à partir d'Eclipse.