0% ont trouvé ce document utile (0 vote)
49 vues12 pages

Introduction aux Sockets en Java

Ce document décrit les sockets, une abstraction logicielle permettant la communication réseau entre programmes. Il explique les sockets côté client et serveur, ainsi que leur utilisation en Java avec les classes Socket, ServerSocket et DatagramSocket pour les communications TCP et UDP.

Transféré par

Zaoui Oumaima
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)
49 vues12 pages

Introduction aux Sockets en Java

Ce document décrit les sockets, une abstraction logicielle permettant la communication réseau entre programmes. Il explique les sockets côté client et serveur, ainsi que leur utilisation en Java avec les classes Socket, ServerSocket et DatagramSocket pour les communications TCP et UDP.

Transféré par

Zaoui Oumaima
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

Les objets distribués: Sockets

Principe des sockets


• Les sockets (ou prises) sont une abstraction logicielle qui permet la communication
bidirectionnelle (deux parties peuvent envoyer et recevoir des données
simultanément) entre deux programmes sur un réseau.
• Elles offrent une manière flexible et puissante pour que les programmes interagissent
sur un réseau, permettant la création d'applications distribuées, de serveurs Web, de
services de messagerie, et bien d'autres.
• Les sockets sont souvent utilisés dans une architecture client-serveur, où un
programme agit en tant que serveur écoutant les connexions entrantes, et d'autres
programmes agissent en tant que clients se connectant au serveur.
• La communication via des sockets repose généralement sur un protocole spécifique,
tel que TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol). TCP
offre une communication fiable et orientée connexion, tandis qu'UDP offre une
communication plus légère mais sans garantie de livraison des paquets.
Principe des sockets
• Deux types de sockets principaux : les sockets côté serveur et les sockets côté client.
Le socket côté serveur écoute les connexions entrantes, tandis que le socket côté
client est utilisé par les clients pour se connecter au serveur.
• Une fois qu'une connexion est établie entre le client et le serveur, des flux de données
peuvent être créés des deux côtés. Ces flux permettent la lecture et l'écriture de
données sur la connexion.
• Les sockets sont identifiés par une adresse IP et un numéro de port. L'adresse IP
identifie l'hôte, et le port spécifie le service sur cet hôte. Les sockets sont liés à une
adresse et un port spécifiques lors de leur création.
• Le cycle de vie d'une communication via des sockets implique généralement la
création d'un socket, la connexion (pour le client), l'acceptation de connexions
entrantes (pour le serveur), la communication à travers les flux, puis la fermeture de
la connexion lorsque la communication est terminée.
Types des sockets
Les sockets en Java

• En Java, la gestion des sockets est facilitée par le package [Link], il fournit des classes
pour la création d'applications réseau, y compris la communication via des sockets.
• Les classes principales pour la gestion des sockets en Java sont:
• Socket est utilisé par les clients pour se connecter à un serveur en mode TCP.
• ServerSocket est utilisé par les serveurs pour écouter les connexions entrantes en
TCP.
• DatagramSocket est utilisé pour l'envoi et la réception de datagrammes en UDP.
• L'utilisation des sockets en mode UDP (User Datagram Protocol) en Java implique
quelques différences par rapport à l'utilisation de sockets TCP.
Les sockets en Java – Mode TCP
• Pour créer un socket client en Java, on instancie un objet de la classe Socket en
fournissant l'adresse IP et le port du serveur auquel on souhaite se connecter.

• Pour créer un socket serveur en Java, on instancie un objet de la classe ServerSocket


en spécifiant le port sur lequel le serveur écoutera les connexions entrantes.

• Pour accepter les connexions entrantes sur le côté serveur, on utilise la méthode
accept() de l'objet ServerSocket. Cette méthode retourne un objet Socket
représentant la connexion établie avec un client.
Les sockets en Java – Mode TCP
• Une fois qu'une connexion est établie, on peut obtenir des flux de données associés
au socket pour la communication. On utilise souvent InputStream et OutputStream
pour lire et écrire des données.

• On utilise les méthodes de lecture et d'écriture des flux pour échanger des données
entre le client et le serveur.
Les sockets en Java – Mode TCP
• Une fois la communication terminée, il est important de fermer les sockets pour
libérer les ressources.
Les sockets en Java – Mode TCP - Exemple
Les sockets en Java – Mode UDP (Côté client)
• DatagramSocket est utilisé pour créer un socket qui sera utilisé pour envoyer des
datagrammes (paquets) UDP au serveur.

• Les données à envoyer doivent d’abord être transférées en bytes avant d’être
encapsulées par le DatagramSocket.

• Pour envoyer un datagramme, on utilise la méthode send() de l'objet


DatagramSocket en fournissant le DatagramPacket à envoyer.

• Comme avec les sockets TCP, il est important de fermer le DatagramSocket après
utilisation.
Les sockets en Java – Mode UDP (Côté server)
• DatagramSocket est utilisé pour créer un socket qui sera utilisé pour recevoir des
datagrammes (paquets) UDP du client. On doit alors spécifier le port.

• Pour recevoir un datagramme, on crée un DatagramPacket vide pour recevoir les


données, puis on utilise la méthode receive() de l'objet DatagramSocket.

• Une fois le datagramme reçu, on peut extraire les données du DatagramPacket de


manière similaire à la lecture/écriture avec des flux en TCP.

• Comme avec les sockets TCP, il est important de fermer le DatagramSocket après
utilisation.
Les sockets en Java – Mode UDP - Exemple

Vous aimerez peut-être aussi