Les modes de fonctionnements
et primitives de
programmation des
applications client-serveur
Équipe Pédagogique Informatique
Table des
matières
I - Objectifs 3
II - Application client serveur en mode connecté / mode non connecté 4
1. Mode connecté ....................................................................................................................................... 4
2. Mode non connecté ............................................................................................................................... 5
3. Les points communs aux modes connecté et non connecté .............................................................. 5
4. Exercice .................................................................................................................................................. 5
III - API de développement des applications clients serveurs 6
1. API Socket .............................................................................................................................................. 6
2. Primitives de programmation(API) ..................................................................................................... 7
3. Les sockets en mode connecté et non connecté ............................................................................... 10
4. Exercice ................................................................................................................................................ 13
OBJETIFS :
À la fin de cette leçon, vous serez capable de :
Distinguer une application fonctionnant en mode connecté d'une application en mode non
connecté.
Expliquer le principe et les primitives de programmation socket
Expliquer les principes des sockets en mode connecté et en mode non connecté
3
Application client serveur en mode connecté / mode non connecté
I. Application
client serveur
en mode
connecté / mode
non connecté
Objectifs
Distinguer une application fonctionnant en mode connecté d'une application en
mode non connecté
Une application peut utiliser plusieurs protocoles. le mode connecté ou non
connecté dépend du protocole de transport utilisé par une application tiers. Ces
deux modes font appel aux protocoles de transport TCP et UDP.
1. Mode connecté
1.1. Caractéristiques du mode connecté
Une application client serveur fonctionne en mode connecté lorsqu'elle utilise le
protocole TCP dans sa mise en œuvre. Elle est caractérisée par :
l'ouverture d'une liaison, suivie par des échanges et finie par la
fermeture de la liaison ; le serveur préserve son état entre deux requêtes
;
TCP garantie l'ordre, le contrôle de flux et la
fiabilité ; Elle adaptée aux échanges nécessitant
plusieurs messages.
1.2. Utilisation du mode connecté
L'utilisation du mode connecté se caractérise par :
l'établissement préalable d'une connexion virtuelle : le client initie une demande
de connexion auprès du serveur et si le serveur accepte alors la connexion est
établie ;
4
Application client serveur en mode connecté / mode non connecté
le serveur après initialisation, devient passif ;
Un serveur peut répondre aux demandes de services de plusieurs clients.
La contrainte liée aux applications qui fonctionnent en mode connecté est que le
client doit avoir accès à l'adresse du serveur ; c'est à dire son adresse IP et le numéro
de port.
5
Application client serveur en mode connecté / mode non connecté
2. Mode non connecté
2.1. Caractéristique du mode non connecté
Une application client serveur fonctionne en mode non connecté lorsqu'elle utilise le
protocole UDP dans sa mise en œuvre. Elle est caractérisée par :
les requêtes successives sont indépendantes
il n'y a pas de préservation de l'état entre les requêtes
le client doit indiquer son adresse à chaque requête car il n'existe pas de
liaison permanente UDP ne donne pas de garantie particulière
Elle adaptée aux échanges bref et à la diffusion
2.2. Utilisation du mode non connecté
Dans le cas de l'utilisation d'une application est mode
non connecté : il n'y a pas une connexion
préalablement établie
Il n'y a pas de garantie de fiabilité
le récepteur reçoit les données selon le découpage de l'émetteur
Les contraintes liées aux applications qui fonctionnent en mode connecté sont :
le client doit avoir accès à l'adresse du serveur, c'est à dire son adresse IP et le
numéro de port ;
le serveur doit récupérer l'adresse de chaque client pour lui répondre
3. Les points communs aux modes connecté et non connecté
Les applications qui fonctionnent en mode connecté et en mode non connecté ont
des points communs dans leur fonctionnement. Les points communs sont présentés
comme suit :
Le client a l'initiative de la communication et donc le serveur lui doit être à
l'écoute ;
Le client doit connaître la référence du serveur (adresse IP et numéro de port)
: il peut le trouver dans un annuaire, si le serveur l'y a enregistré au préalable
ou en utilisant les numéros de ports préaffectés par convention ;
Le serveur peut servir plusieurs clients.
4. Exercice
[Solution n°1 p 14]
Exercice
Une application est en mode connectée lorsqu'elle utilise le protocole TCP
vrai
faux
Exercice
5
Application client serveur en mode connecté / mode non connecté
Une application est en mode non connectée lorsqu'elle utilise le protocole UDP
vrai
faux
6
API de développement des applications clients serveurs
II. API de
développement des
applications clients
serveurs
Objectifs
À la fin de cette leçon, vous serez capable de :
Expliquer le principe et les primitives de programmation socket
Expliquer les principes des sockets en mode connecté et en mode non connecté
1. API Socket
1.1. Quelle est l'API utilisée dans le développement des applications ?
L'API (Application Program Interface) la plus utilisée est l'API Sockets. Elle offre au
développeur un ensemble de primitives pour l'accès à la pile de protocoles TCP/IP.
Définition : Socket
La socket est une interface entre le programme d'application et les protocoles de
communication.
7
API de développement des applications clients serveurs
1.2. Principe de programmation
En algorithmique et programmation, la manipulation d'un fichier répond à un
processus. Dans la mise en œuvre des applications clients serveurs, un socket est
utilisé de la même manière comme un fichier :
1. Création/Définition/Ouverture
2. Communication
3. Fermeture/Libération.
1.3. Création/Définition/Ouverture
Elle consiste en la réservation des ressources pour l'interface de communication.
Elle consiste en la création d'un descripteur du socket comme les descripteurs de
fichiers.
1.4. Communication
La communication nécessite un ensemble de primitive qui sont :
Utilisation des primitives read(réception), write(émission) ... (comme dans le cas
d'une manipulation d'un fichier).
Plusieurs variantes de primitive d'émission et de réception.
Fermeture/Libération
La fermeture nécessite l'utilisation de la primitive close (fermeture de la
communication). Elle permet ainsi de libérer la ressource utilisée.
2. Primitives de programmation(API)
Les primitives de programmation sont présentés par les représentations ci-dessous.
7
API de développement des applications clients serveurs
Cette représentation présente les primitives utilisées par le client et le serveur dans
le cadre d'une application client serveur. Le rôle de chaque primitive est expliqué.
8
API de développement des applications clients serveurs
Cette représentation traduit le processus de demande de connexion.
9
API de développement des applications clients serveurs
Cette représentation traduit l'acceptation d'une demande de connexion
1
0
API de développement des applications clients serveurs
Cette représentation traduit l'établissement réussi d'une communication ainsi que la fermeture.
3. Les sockets en mode connecté et non connecté
Les sockets en mode connecté
L'API réseau de Java définit des classes et interfaces de programmation (sockets
TCP : Socket, ServerSocket) permettant une connexion fiable à travers TCP entre
deux processus.
Cette connexion est asymétrique puisque une machine joue le rôle de serveur donc
attend les demande de connexion et les accepte puis une autre machine joue le rôle
de client, elle demande l'établissement de la connexion avec le serveur.
Le principe des sockets en mode connecté est présenté
comme suit. Côté serveur :
Le serveur créé le ServerSocket et
attend les demandes de connexion et crée un socket pour
le dialogue récupère les flux d 'entrée et de sortie
Côté client :
Le client créé le Socket,
récupère les flux d'entrée et de
sortie et dialogue avec le serveur
11
API de développement des applications clients serveurs
Cette représentation présente le déroulement de l'exécution des sockets TCP.
Les sockets en mode non connecté
Les sockets en mode non connecté sont représentés par les sockets UDP :
DatagramSocket, DatagramPacket qui sont des API réseau de Java.
UDP caractérise la couche transport non fiable en mode non connecté :
Il contrôle des erreurs mais pas de reprise sur erreur, pas d 'ACK, séquencement des
paquets non garanti et il est plus simple que TCP et plus efficace pour certaines
applications (envoi de vidéo, audio, mesures, TFTP, NFS, DNS ... )
l 'émetteur (sender) envoie un datagramme (paquets de données) sur un socket que
le récepteur (receiver) écoute.
1
2
API de développement des applications clients serveurs
Cette représentation présente le déroulement et l'exécution des sockets UDP.
13
API de développement des applications clients serveurs
4. Exercice
[Solution n°2 p 14]
Exercice
La socket est une interface de programmation permettant une connexion entre deux processus
vrai
faux
Exercice
La socket en mode connecté présente des caractéristiques au niveau serveur et client. lesquelles ?
Le serveur récupère les flux d 'entrée et de sortie
Le serveur attend les demandes de connexion et crée un socket pour le dialogue
Le serveur créé le ServerSocket et
Le client créé le Socket
Le client récupère les flux d'entrée et de sortie
Le client dialogue avec le serveur
Exercice
La mise en œuvre d'une application client serveur nécessite un ensemble d'étapes
La demande d'une connexion
l'acceptation d'une demande de connexion
l'établissement réussi d'une communication ainsi que la fermeture
1
4
Ressources annexes
14