Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

Exercice 4 : Programme Chat Server/Client (Socket UDP)

Ce projet implémente un système de chat utilisant le protocole UDP (User Datagram Protocol) pour la communication sans connexion.

Structure du projet

  • ServeurUDP.java : Serveur UDP qui utilise les ports 9876 (réception) et 9877 (envoi)
  • ClientUDP.java : Client UDP qui utilise les ports 9876 (envoi) et 9877 (réception)

Fonctionnement

Serveur UDP

  1. Crée un socket UDP sur le port 9876 pour recevoir
  2. Crée des paquets de datagramme pour la réception
  3. Reçoit et lit les messages du client
  4. Demande à l'utilisateur (serveur) d'entrer une réponse
  5. Crée un paquet de datagramme et envoie la réponse au port 9877
  6. Répète les étapes 3-5 jusqu'à recevoir "bye" ou "end"
  7. Ferme le socket

Client UDP

  1. Crée un socket UDP sur le port 9877 pour recevoir
  2. Demande à l'utilisateur d'entrer un message
  3. Crée un paquet de datagramme avec le message
  4. Envoie le paquet au serveur (port 9876)
  5. Reçoit la réponse du serveur
  6. Affiche la réponse
  7. Répète les étapes 2-6 jusqu'à envoyer "bye" ou "end"
  8. Ferme le socket

Différences UDP vs TCP

  • UDP : Protocole sans connexion, plus rapide mais moins fiable
  • TCP : Protocole avec connexion, plus fiable mais plus lent
  • UDP n'établit pas de connexion préalable
  • UDP utilise des datagrammes au lieu de flux

Compilation

cd exo4
javac ServeurUDP.java ClientUDP.java

Exécution

1. Démarrer le serveur (dans un terminal)

java ServeurUDP

2. Démarrer le client (dans un autre terminal)

java ClientUDP

Exemple de conversation

Terminal Serveur :

Serveur UDP démarré
Port de réception (client): 9876
Port d'envoi (serveur): 9877
En attente de messages...

Client: Bonjour serveur UDP !
Serveur: Salut client ! Comment ça va ?

Client: Très bien merci !
Serveur: Super ! Que puis-je faire pour toi ?

Client: bye

Client a terminé la conversation.
Serveur UDP arrêté.

Terminal Client :

Client UDP démarré
Connexion au serveur localhost
Port d'envoi (client): 9876
Port de réception (serveur): 9877
Début de la conversation (tapez 'bye' ou 'end' pour terminer)

Client: Bonjour serveur UDP !
Serveur: Salut client ! Comment ça va ?

Client: Très bien merci !
Serveur: Super ! Que puis-je faire pour toi ?

Client: bye

Conversation terminée par le client.
Client UDP arrêté.

Notes

  • UDP ne garantit pas la livraison des paquets
  • Les paquets peuvent arriver dans le désordre
  • Pas de connexion établie (pas de handshake comme TCP)
  • Plus rapide que TCP mais moins fiable
  • Le serveur doit être démarré avant le client
  • Tapez "bye" ou "end" pour terminer la conversation