D veloppement dapplication
client/serveur
Hatem Ben Sta
2 ING
2019-2020
Chapitre 4
Introduction aux API sockets
2
Introduction:
3
Sockets:
Une socket est:
Un point d'acc s aux couches r seau
Li e localement un port: Adressage de l'application sur le r seau : son
couple @IP:port
Elle permet la communication avec un port distant sur une machine
distante : c'est- -dire avec une application distante
4
Illustration dAPI socket: (2)
IGMP : Internet Group Management Protocol
5
Illustration dAPI socket: (3)
6
Diff rents types de sockets
Stream Sockets (TCP)
tablir une communication en mode connect
si connexion interrompue : applications inform es
Exemples de services : ftp, http, smtp, telnet, BGP&
Datagram Sockets (UDP)
tablir une communication en mode non connect
donn es envoy es sous forme de paquets ind pendants
de toute connexion. Plus rapide, moins fiable que TCP
Exemples de services : snmp, RPC, tftp, dhcp, dns,
RIP&
7
La notion de port :
Un service rendu par un programme serveur sur une machine
est accessible par un port.
Un port est identifi sur une machine par un nombre entier (16
bits).
Advertisement
8
Exemple:
9
Processus de Sockets:
10
Gestion du parall lisme sur le
serveur:
11
Sockets en mode connect :
Principe
-flot bidirectionnel doctets transf r s
de fa on fiable (ni perte, ni duplication) et ordonn e
entre deux locuteurs pr alablement connect s
= = > service TCP utilis
-trois phases n cessaires programmer :
tablissement de connexion:
" Un initiateur (lentit client : ouverture active)
" Un r pondant (lentit serveur : ouverture passive)
transfert de donn es:
" Requ tes, r ponses (selon le protocole applicatif)
lib ration de connexion
" Bi partie
12
Sockets en mode connect :
Ouverture passive (c t r pondant ) : (1/2)
Conception :
D dier une socket destin e intercepter des demandes
d tablissement de connexion
= = > socket g n rique d coute
Caract riser cette socket en terme de communication :
-au moins un num ro de port (associ au service)
- ventuellement une adresse IP (interface cible)
Lui permettre de scruter et stocker les demandes de
connexions entrantes avant acceptation
-param trer la taille de la FIFO des requ tes
13
Sockets en mode connect :
Ouverture passive (c t r pondant ) : (2/2)
Programmation en JAVA :
Classe ServerSocket
Advertisement
Trois constructeurs possibles:
-num ro_port (obligatoire)
-Et taille maximale FIFO
-Et Adresse IP
14
Sockets en mode connect :
Ouverture active (c t initiateur ) : (1/2)
Conception :
Cr er une socket localement (et ventuellement la
caract riser)
Lutiliser pour demander l tablissement dune connexion
TCP avec un processus distant r pondant
Sp cifier ce dernier gr ce aux caract ristiques de
communication de sa socket g n rique d coute :
-num ro de port
-Adresse IP
15
Sockets en mode connect :
Ouverture active (c t initiateur ) : (2/2)
Programmation en JAVA
Classe Socket
Quatre constructeurs possibles
-@sse IP ou nom_host distant ET num ro_port
distant (obligatoires)
-Et @sse IP ou nom_host local ET num ro_port
local
16
Sockets en mode connect :
Acceptation douverture (c t r pondant ) : (1/2)
Conception :
Le processus doit tre bloqu tant quaucune demande de
connexion ne lui parvient sur la socket g n rique d coute :
= = > fonction bloquante
Lacceptation consiste consid rer positivement une
demande re ue et cr er localement une socket sp cifique
d di e supporter l change de donn es sur cette connexion
particuli re
= = > Cette socket repr sente lextr mit serveur
de la connexion TCP initi e par un client distant.
17
Advertisement
Sockets en mode connect :
Acceptation douverture (c t r pondant ) : (2/2)
Programmation en JAVA
Classe ServerSocket
M thode accept
18
Sockets en mode connect :
Transfert de donn es (des deux c t s) :
Conception :
EMISSION : Revient Ecrire/Envoyer un message (x
octets) sur la connexion
RECEPTION : Revient Lire/Recevoir un message (x
octets) sur la connexion
Programmation en JAVA
Classe Socket
Emission : m thode getInputStream
R ception : m thode getOuputStream
19
Sockets en mode connect :
Lib ration de connexion (des deux c t s) :
Conception :
Fermeture totale :revient fermer lextr mit dune
connexion : = = > mission et r ception deviennent
impossibles
Fermeture partielle : possible selon les technologies
= = > mission ou r ception devient impossible
Programmation en JAVA:
Classe Socket
m thode close
m thodes shudownInput et shutdownOutput
20
Sockets en mode non connect :
Principe:
Datagrammes individuels transf r s
-de fa on non fiable, du mieux possible
-pas de connexion entre metteur(s) et r cepteur
= = > service UDP utilis
Une seule phase programmer :(transfert de donn es)
-envoi et r ception possibles (de requ tes et de r ponses
selon le protocole applicatif)
Advertisement
-d termination de lexp diteur par le r cepteur; Il peut
ensuite devenir destinataire.
Lib ration de port apr s usage
21
Sockets en mode non connect :
Cr ation et caract risation dune socket
Conception :
Cr er une socket localement
Le caract riser si r ception de donn es pr vue: Num ro de port
pr d fini c t serveur
Programmation en JAVA
Classe DatagramSocket
Trois constructeurs possibles
-sans param tre : port anonyme local
-avec no_port local
-et @sse IP_locale
22
Sockets en mode non connect :
Transfert de donn es (des deux c t s) :
Conception :
EMISSION : Envoyer X octets vers une socket distante dont
on pr cise les caract ristiques
RECEPTION : Recevoir X octets provenant dune socket
distante dont on r cup re les caract ristiques pour en
d terminer lorigine.
Programmation en JAVA: (1/2)
Classe SocketDatagram
-Emission : m thode send
-R ception : m thode receive
-Gestion dassociation : m thodes connect et disconnect
23
Programmation en JAVA: (2/2)
Classe DatagramPacket
-Constructeurs pour lenvoi
-Constructeurs pour la r ception
24
Fin du Chapitre
25