0% ont trouvé ce document utile (0 vote)
22 vues11 pages

Développement D'applications Réparties TP3: Compte Rendu

Le document présente un compte rendu sur le développement d'applications réparties utilisant des sockets UDP. Il décrit les concepts clés tels que les DatagramSockets, la gestion des entrées/sorties, et la conversion de données, ainsi que des exemples de programmes client et serveur. Les programmes illustrent la communication entre un client et un serveur via des messages UDP, avec des fonctionnalités pour envoyer, recevoir et traiter des données.

Transféré par

Najah Kousay
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues11 pages

Développement D'applications Réparties TP3: Compte Rendu

Le document présente un compte rendu sur le développement d'applications réparties utilisant des sockets UDP. Il décrit les concepts clés tels que les DatagramSockets, la gestion des entrées/sorties, et la conversion de données, ainsi que des exemples de programmes client et serveur. Les programmes illustrent la communication entre un client et un serveur via des messages UDP, avec des fonctionnalités pour envoyer, recevoir et traiter des données.

Transféré par

Najah Kousay
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

INSTITUT SUPÉRIEUR D'INFORMATIQUE

DE MAHDIA

Développement d'applications
réparties
Compte rendu

TP3
Sockets en mode non-connecté
UDP

KOUSSAY NAJAH
GLSI3-D
Rappel
Sockets UDP (User Datagram Protocol):
Définition : Un socket est un point de communication pour
envoyer et recevoir des données entre deux machines via un
réseau. Dans cette application, nous avons utilisé des sockets
UDP (User Datagram Protocol), qui est un protocole sans
connexion, signifiant qu'il ne vérifie pas la réception de
chaque paquet envoyé. Cela permet une communication rapide
mais non garantie.
DatagramSocket : La classe DatagramSocket est utilisée pour
créer des sockets UDP dans les applications client et serveur.
Chaque socket est associé à un port réseau, par exemple, 1234
pour le serveur et un port temporaire pour le client.
Paquets UDP (DatagramPacket) : Les DatagramPackets sont
des unités de données envoyées et reçues par les sockets UDP.
Ils contiennent les informations d'adresse de l'expéditeur et
du destinataire, ainsi que les données envoyées.

DatagramPacket:
Envoi de données : Le DatagramPacket est utilisé pour
envoyer des données sous forme de bytes entre le client et le
serveur. On le crée en utilisant un tableau de bytes, la
longueur du message, et l'adresse IP et le port du destinataire.
Réception de données : Lorsque le serveur ou le client reçoit
un paquet, un DatagramPacket est utilisé pour extraire les
données sous forme de tableau de bytes, que l'on peut ensuite
convertir en chaîne de caractères.

InetAddress
La classe InetAddress représente une adresse IP dans Java.
Dans cette application, InetAddress.getLocalhost() est utilisé
pour obtenir l'adresse IP locale du serveur, permettant de
tester l'application en local.
Gestion de l’E/S avec DatagramSocket
Pour envoyer des données, le client et le serveur utilisent la
méthode send() sur une instance de DatagramSocket, en
passant en paramètre un DatagramPacket.
Pour recevoir des données, la méthode receive() est utilisée.
Elle bloque l’exécution jusqu'à ce qu'un paquet soit reçu,
assurant que le programme attend la réponse avant de
continuer.

Conversion de données
Dans les applications réseau, les données sont envoyées sous
forme de bytes. Nous utilisons les méthodes getBytes() pour
convertir une chaîne en tableau de bytes, et le constructeur de
String pour convertir les bytes reçus en chaînes de caractères.

Scanner pour l'Interaction Utilisateur


La classe Scanner est utilisée pour lire l'entrée utilisateur
dans la console, permettant d’entrer un message et de
l’envoyer au serveur. Elle facilite la création d'une interface de
commande simple.

LocalTime et DateTimeFormatter
Pour formater l’heure dans l'application serveur, les classes
LocalTime et DateTimeFormatter permettent de capturer
l'heure actuelle et de l'afficher sous forme de chaîne (par
exemple, ("HH:mm:ss").
TP
EX1:
Client

Ce programme met en œuvre un client UDP qui envoie des messages à


un serveur UDP. Le client crée un socket UDP et utilise l’adresse IP
locale pour identifier la machine hôte. Dans une boucle, il demande à
l’utilisateur de saisir un message, puis envoie ce message au serveur
sous forme de paquet UDP. Si l’utilisateur saisit "Fin", la boucle s'arrête
et le client ferme le socket, marquant ainsi la fin de la communication.
Server

Ce programme implémente un serveur UDP qui reçoit des messages


d’un client. Il ouvre un socket UDP sur le port 1234 pour écouter les
messages entrants. Lors de la réception de chaque message, le serveur
affiche son contenu dans la console. La communication se poursuit
jusqu’à ce que le serveur reçoive le message "Fin", indiquant la fin de la
session. À ce moment-là, le serveur affiche un message de terminaison
et ferme le socket, mettant fin au programme. Ce serveur est conçu
pour traiter de manière continue les messages d’un client et peut être
adapté pour répondre ou traiter des messages selon les besoins.
Output
server

client

Fin
server

client
EX2:
Client

Ce programme Java crée un client UDP qui communique avec un


serveur. Le client envoie des messages texte au serveur via un socket
UDP et attend une réponse. À chaque itération, l’utilisateur saisit un
texte qui est envoyé sous forme de paquet au serveur. Le client attend
ensuite une réponse, qu’il affiche sur la console. Si l’utilisateur saisit
"exit", le client ferme la connexion et termine l'exécution.
Server

Ce programme Java implémente un serveur UDP qui reçoit des


messages texte d'un client, les convertit en majuscules et renvoie le
texte modifié. Le serveur utilise un socket UDP, qui écoute en
permanence sur le port 4321 pour recevoir les messages clients.
Lorsqu'un message est reçu, il est affiché, transformé en majuscules,
puis renvoyé au client. Le serveur fonctionne de façon continue en
boucle, prêt à traiter d'autres messages sans interruption.

Output

server

client
EX3:
Client

Le client invite l'utilisateur à entrer un message, qu'il envoie sous


forme de paquet UDP au serveur via le port 1234, puis il attend une
réponse. Dès que le serveur répond, le client affiche le message reçu.
Si l'utilisateur saisit "fin," le client stoppe la boucle d'envoi-réception
et ferme le socket pour terminer la communication.
Server

Le serveur UDP attend les messages envoyés par le client via le port
1234. Lorsqu'un message est reçu, le serveur le traite, obtient l'heure
actuelle, et envoie cette information sous forme de réponse au client.
Si le message reçu est "fin," le serveur sort de la boucle et ferme le
socket, mettant ainsi fin à la connexion avec le client.

Output

server

client
Fin

server

client

Vous aimerez peut-être aussi