Sockets TCP UDP Java
Sockets TCP UDP Java
Sockets TCP UDP Java
R. HACHEMI
Introduction
Programmation réseau
Permettre à des programmes (applications) de communiquer à travers
un réseau
- d’une manière plus ou moins transparente : pas de
visibilité des systèmes intermédiaires.
- communication entre extrémités.
Introduction
Introduction
Adressage pour communication entre programmes
- Adresse IP (couche réseau)
- forme symbolique : google.com
- notation pointée : 172.217.19.142
- Constructeur créant une socket connectée à une machine distante identifiée par address sur le port
port.
- Constructeur similaire au précédent, utilisant le nom de la machine au lieu de son adresse IP codée.
- Autre constructeur pour préciser également un port local sur lequel sera liée la socket créée.
Socket TCP en Java – Classe Socket
Emission vs Réception de données
OutputStream getOutputStream()
public close()
Quand une connexion est faite, la méthode renvoie une socket permettant de communiquer avec le
client
Socket UDP
Mode Non Connecté – Communication par Datagramme
- Un paquet P2 envoyé après un paquet P1 peut arriver avant ce paquet P1 (selon la gestion des routes
dans le réseau)
Socket UDP
Principe de Communication
- La partie client crée une socket pour accéder à la couche UDP et la lie sur un port quelconque
- Le client envoie un paquet via sa socket en précisant l'adresse du destinataire (adresse IP et numéro de port)
- Si le client envoie un paquet avant que le serveur ne soit prêt à recevoir : le paquet est perdu
- Constructeur créant un paquet pour recevoir des données (sous forme d’un tableau d’octets)
- La taille maximale length des données à lire est en général égale à la taille de buf
- Constructeur créant un paquet pour envoyer des données (sous forme d’un tableau d’octets)
InetAddress getAddress() Renvoie l’adresse de la machine destinataire (si le paquet est à envoyer)
Renvoie l’adresse de la machine émettrice (si le paquet est reçu)
int getPort() Renvoie le port de la machine destinataire (si le paquet est à envoyer)
Renvoie le port de la machine émettrice (si le paquet est reçu)
int getLength() Renvoie la longueur des données à envoyer (si le paquet est à envoyer)
Renvoie la longueur des données reçues (si le paquet est reçu)
Socket UDP en Java – Classe DatagramPacket
Accesseurs
- Envoi d’un paquet (passé en paramètre). L’adresse et le port du destinataire sont contenu dans le paquet.
- Quand un paquet arrive, le paramètre p contient les informations du paquet reçu (adresse, port ,
données, longueur)
Socket UDP en Java – Classe DatagramSocket
Autres Méthodes