Développement d’application client/serveur

Page 1 sur 25Lecteur de document UniversityLib

Développement d’application client/serveur

Computer Networking and Software Development · notes

Voir tous les documents en réseaux

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).

Publicité

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

Publicité

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

Publicité

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)

Publicité

-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