Chat Distribué
2 semaines - Mars 2024 UBO - UFR Sciences et Techniques, Brest 29200

Application de messagerie instantanée distribuée développée en Java, mettant en pratique les concepts avancés de programmation réseau et de systèmes concurrents.
Architecture Serveur
Le projet implémente trois architectures serveur distinctes :
1. Architecture Classique (Bloquante)
- Utilisation des I/O streams traditionnels
- Gestion séquentielle des connexions
2. Architecture Non-Bloquante (NIO)
- Utilisation du package java.nio
- Selector pour multiplexage I/O
- Performance optimisée
3. Architecture Multithreadée
- ThreadPool pour gestion concurrente
- Traitement parallèle des requêtes
Fonctionnalités Réseau
- Protocole TCP/UDP pour communication fiable
- Multicast pour diffusion de groupe
- Heartbeat pour détection de pannes
- Gestion robuste des connexions/déconnexions
Interface Graphique
Interface JavaFX professionnelle avec :
- Gestion complète des événements utilisateur
- Affichage temps réel des messages
- Liste des utilisateurs connectés
Infrastructure
- Docker pour déploiement conteneurisé
- Orchestration multi-conteneurs
- Simulation d'environnement distribué
Patterns Implémentés
- Producer-Consumer pour gestion des messages
- Future/Callable pour opérations asynchrones
- Synchronisation thread-safe
Ce projet démontre ma maîtrise de la programmation réseau et des systèmes distribués.