Plan détaillé du cours
Chapitre 1 : Introduction aux Sockets
1.1. Définition d’un socket
Notion d’extrémité de communication
Rôle des adresses IP et des ports
1.2. Types de communications réseau
Modèle Client-Serveur
Modèle Pair-à-Pair (comparaison)
1.3. Protocoles utilisés
Présentation du protocole TCP
Présentation du protocole UDP
Tableau comparatif TCP vs UDP
1.4. Pourquoi utiliser Java pour la programmation réseau ?
API Java ([Link])
Portabilité du langage
Gestion automatique des threads et exceptions
1.5. Applications
Chapitre 2 : Les classes principales utilisées dans la programmation client–
serveur en Java
2.1. Communication via TCP (Transmission Control Protocol)
ServerSocket : création d’un serveur qui écoute
o Méthodes principales : accept(), close()
o Exemple d’écoute sur un port
Socket : établir une connexion côté client
o Méthodes principales : getInputStream(), getOutputStream(), close()
Flux de communication (TCP)
o InputStream / OutputStream : lecture et écriture binaires
o BufferedReader / PrintWriter : communication textuelle simplifiée
Gestion des erreurs réseau (TCP)
o IOException
o Port déjà utilisé / refus de connexion
2.2. Communication via UDP (User Datagram Protocol)
DatagramSocket : envoi et réception de datagrammes
o Méthodes principales : send(), receive(), close()
DatagramPacket : encapsulation des données à transmettre
o Constructeurs principaux : envoi et réception de paquets
Flux de communication (UDP)
o Communication par paquets indépendants, sans flux continus
Gestion des erreurs réseau (UDP)
o IOException
o Port déjà utilisé / perte de paquet
Chapitre 3 : Premier projet — Communication simple client ↔ serveur
3.1. Objectif du projet
Créer un serveur qui reçoit un message et répond au client.
3.2. Étapes de développement
Écriture du serveur (classe ServerSocket)
Écriture du client (classe Socket)
Test en local (localhost)
3.3. Analyse des flux et du déroulement de connexion
Ouverture → Échange → Fermeture
Chapitre 4 : Serveur multi-clients et chat en groupe
4.1. Limites du modèle simple (un seul client à la fois)
4.2. Introduction au multithreading en Java
4.3. Création d’un serveur qui gère plusieurs clients simultanément
Utilisation d’un Set<PrintWriter> pour stocker les clients connectés
Diffusion des messages (broadcast)
4.4. Création du client de chat
Thread d’écoute pour recevoir les messages
Thread principal pour envoyer des messages
4.5. Test collectif : tous les étudiants connectés sur le même serveur
Simulation d’un chat de groupe en LAN (on peut aller plus loin si possible)