• Aucun résultat trouvé

Développement d’application client/serveur

N/A
N/A
Protected

Academic year: 2022

Partager "Développement d’application client/serveur"

Copied!
25
0
0

Texte intégral

(1)

Zouhair ELHADARI

www.hadari.jimdo.com

Centre de BTS Dakhla

Développement d’application

client/serveur

(2)

Chapitre 4

Introduction aux API sockets

2ème année BTS DSI Prof:EL HADARI zouhair 2

(3)

Introduction:

(4)

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

2ème année BTS DSI Prof:EL HADARI zouhair 4

(5)

Illustration d’API socket: (2)

(6)

Illustration d’API socket:

(3)

2ème année BTS DSI Prof:EL HADARI zouhair 6

(7)

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…

(8)

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

2ème année BTS DSI Prof:EL HADARI zouhair 8

(9)

Exemple:

(10)

Processus de Sockets:

2ème année BTS DSI Prof:EL HADARI zouhair 10

(11)

Gestion du parallélisme sur le

serveur:

(12)

Sockets en mode connecté:

Principe

-flot bidirectionnel d’octets 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 (l’entité « client » : ouverture active)

Un répondant (l’entité « serveur » : ouverture passive)

transfert de données:

Requêtes, réponses (selon le protocole applicatif)

libération de connexion

Bi partie

2ème année BTS DSI Prof:EL HADARI zouhair 12

(13)

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

(14)

Sockets en mode connecté:

Ouverture passive (côté « répondant ») : (2/2) Programmation en JAVA :

Classe ServerSocket

Trois constructeurs possibles:

-numéro_port (obligatoire) -Et taille maximale FIFO -Et Adresse IP

2ème année BTS DSI Prof:EL HADARI zouhair 14

(15)

Ouverture active (côté « initiateur ») : (1/2) Conception :

Créer une socket localement (et éventuellement la caractériser)

L’utiliser pour demander l’établissement d’une 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

Sockets en mode

connecté:

(16)

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

2ème année BTS DSI Prof:EL HADARI zouhair 16

Sockets en mode

connecté:

(17)

Acceptation d’ouverture (côté « répondant ») : (1/2) Conception :

Le processus doit être bloqué tant qu’aucune demande de connexion ne lui parvient sur la socket générique d’écoute :

= = > fonction bloquante

L’acceptation 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 l’extrémité « serveur » de la connexion TCP initiée par un « client » distant.

Sockets en mode

connecté:

(18)

Acceptation d’ouverture (côté « répondant ») : (2/2) Programmation en JAVA

Classe ServerSocket

Méthode accept

2ème année BTS DSI Prof:EL HADARI zouhair 18

Sockets en mode

connecté:

(19)

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

Sockets en mode

connecté:

(20)

Libération de connexion (des deux côtés) : Conception :

Fermeture totale :revient à fermer l’extrémité d’une 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

2ème année BTS DSI Prof:EL HADARI zouhair 20

Sockets en mode

connecté:

(21)

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)

-détermination de l’expéditeur par le récepteur; Il peut ensuite devenir destinataire.

Libération de port après usage

Sockets en mode non connecté:

(22)

Création et caractérisation d’une 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

2ème année BTS DSI Prof:EL HADARI zouhair 22

Sockets en mode non connecté:

(23)

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 d’une socket distante dont on récupère les caractéristiques pour en

déterminer l’origine.

Programmation en JAVA: (1/2) Classe SocketDatagram

-Emission : méthode send -Réception : méthode receive

-Gestion d’association : méthodes connect et disconnect

Sockets en mode non connecté:

(24)

Programmation en JAVA: (2/2) Classe DatagramPacket

-Constructeurs pour l’envoi

-Constructeurs pour la réception

2ème année BTS DSI Prof:EL HADARI zouhair 24

(25)

Fin du Chapitre

Références

Documents relatifs

– Comment casser la relation forte entre client et serveur, comment rendre le client indépendant du serveur pour l'appel.

Interface de connexion (socket) utilisée pour TCP dans l’UNIX Interface de connexion (socket) utilisée pour TCP dans l’UNIX Un serveur : un numéro de port fixé.. Côté

//On associe un paquet à un buffer vide pour la réception DatagramPacket paquet =new DatagramPacket(buffer,buffer.length());. //On crée un socket pour écouter sur le

Serveur en gestion multi--clients clients en en mode connecté. mode

◮ Réponse : message transmis par un serveur à un client suite à l’exécution d’une opération, contenant le résultat

Ce n'est pas une bonne pratique d'un point de vue sécurité car cela veut dire que les machines de l'entreprise peut communiquer directement entre elles.. Si l'une d'elle est

En revanche, certaines utilisations comme le continu (streaming) nécessitent l'emploi d'un protocole plus léger et plus rapide, comme UDP (User Datagram Protocol ou protocole

• Un serveur peut répondre aux demandes de service de plusieurs clients : les requêtes arrivées et non traitées sont stockées dans une file d’attente.