Client / Serveur TCP & UDP
Sockets, multithreading, gestion des connexions, portail de login
Développement d’une architecture complète client-serveur en Java. Le projet comprend un portail d’authentification, des modules TCP et UDP indépendants, et une gestion multithreadée des connexions.
Objectifs
- Serveur multi-clients avec threads dédiés
- Transmission TCP et UDP
- Portail d’authentification obligatoire
- Interface console claire et lisible
Technos & notions
- Java SE – Sockets, DatagramSocket
- Multithreading (Runnable / Thread)
- Flux I/O et gestion d’exceptions
1 / Structure
Le projet est organisé en trois parties : le serveur, le client, et un portail de login. Chaque protocole (TCP, UDP) a ses propres classes client et serveur. L’application démarre par une authentification avant de lancer les modules réseau.
2 / Portail d’authentification
Le client affiche un écran de connexion demandant identifiant et mot de passe. Ces informations sont envoyées au serveur, qui valide ou refuse l’accès. En cas de succès, l’utilisateur accède aux fonctions réseau.
// Exemple simplifié côté client
Socket socket = new Socket("127.0.0.1", 5000);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.print("Identifiant : ");
String user = sc.nextLine();
System.out.print("Mot de passe : ");
String pass = sc.nextLine();
out.println(user + ":" + pass);
String response = in.readLine();
if ("OK".equals(response)) {
System.out.println("Connexion autorisée !");
} else {
System.out.println("Accès refusé.");
}
3 / TCP – Serveur et Client
Le serveur TCP écoute sur un port et lance un thread par client. Le client envoie des messages textuels et reçoit les réponses du serveur. Chaque échange est journalisé.
4 / UDP – Serveur et Client
L’implémentation UDP repose sur des datagrammes indépendants. Le serveur reçoit et renvoie des paquets sans connexion persistante.
5 / Multithreading
Pour éviter les blocages lors de connexions multiples, le serveur crée un thread par client TCP ou par paquet UDP. Cela permet des échanges simultanés.
6 / Sécurité d’accès
L’accès aux modules TCP/UDP est protégé par le portail de connexion. Aucun client non authentifié ne peut établir de communication. Une fois connecté, l’utilisateur accède à l’interface réseau.