WEBVTT

00:05.080 --> 00:08.270
Alors les gars, commençons par la programmation des sockets.

00:08.290 --> 00:12.430
Il s'agit donc de la partie du cours où vous allez écrire du code.

00:13.120 --> 00:17.500
Dans ce module, nous allons donc voir ce qu'est exactement la programmation par socket.

00:17.530 --> 00:18.900
Il s'agit d'une introduction.

00:18.910 --> 00:26.080
Nous allons discuter de l'architecture des modèles basés sur le client-serveur et de la manière dont le modèle

00:26.080 --> 00:32.980
client-serveur peut être mis en œuvre en C, nous allons discuter de la programmation des sockets basée sur

00:32.980 --> 00:33.910
TCP et UDP.

00:33.910 --> 00:40.390
En fait, nous allons nous concentrer uniquement sur la programmation basée sur TCP car la programmation basée sur UDP est très,

00:40.390 --> 00:41.380
très facile.

00:41.410 --> 00:47.920
Une fois que vous aurez maîtrisé la programmation des sockets basée sur TCP, vous pourrez facilement faire de la programmation basée sur UDP.

00:48.550 --> 00:49.960
Nous verrons ensuite ce qu'il en est.

00:49.960 --> 00:53.740
Comment pouvons-nous faire du multiplexage en utilisant l'appel système select ?

00:53.830 --> 00:59.860
Tout d'abord, nous allons également discuter de ce qu'est exactement le multiplexage, n'est-ce pas ?

00:59.860 --> 01:07.970
Linux fournit un appel système spécial appelé Select, qui nous permet de faire du multiplexage.

01:07.970 --> 01:16.250
Le multiplexage est la capacité du serveur à gérer un certain nombre de clients en même temps.

01:17.070 --> 01:17.790
C'est vrai.

01:18.300 --> 01:22.420
Nous verrons ensuite comment les serveurs TCP sont conçus.

01:22.440 --> 01:27.360
Quelles sont les étapes de la conception et du développement d'un serveur TCP ?

01:27.480 --> 01:31.710
Et nous aurons un projet sur la programmation des sockets.

01:32.100 --> 01:36.900
Commençons donc par l'introduction au modèle basé sur le client et le serveur.

01:36.930 --> 01:40.560
Qu'est-ce que la communication client-serveur ?

01:40.950 --> 01:45.390
Essayons maintenant de comprendre ce que sont exactement les machines serveurs.

01:45.420 --> 01:50.640
Quelle est la définition d'une machine telle qu'elle soit qualifiée de serveur ?

01:51.420 --> 01:52.170
C'est vrai.

01:53.140 --> 01:57.880
Le serveur est donc toute machine qui reçoit la demande.

01:57.910 --> 01:58.570
C'est vrai ?

01:58.570 --> 02:00.580
Il recevra la demande de qui ?

02:00.760 --> 02:03.300
Il recevra la demande du client.

02:03.310 --> 02:06.820
Le serveur est donc toute machine qui reçoit la demande.

02:06.850 --> 02:12.820
Il traite la demande et renvoie éventuellement le résultat.

02:13.210 --> 02:13.840
C'est vrai.

02:13.840 --> 02:20.950
Ainsi, toute machine possédant cette propriété reçoit la demande, la traite et renvoie

02:20.950 --> 02:22.120
le résultat.

02:22.120 --> 02:26.260
Une telle machine est appelée machine serveur, n'est-ce pas ?

02:26.560 --> 02:30.880
Et le client est toute machine qui initie la requête.

02:30.880 --> 02:37.840
Voici donc la définition simple d'une machine que l'on peut qualifier de machine serveur et de machine client.

02:37.930 --> 02:38.740
C'est vrai ?

02:39.100 --> 02:42.640
La machine serveur n'est jamais à l'origine de la demande.

02:42.640 --> 02:46.870
C'est uniquement la machine du client qui initie toujours la demande.

02:47.200 --> 02:52.610
Nous allons rapidement écrire un simple modèle client-serveur Hello world et voir.

02:52.880 --> 02:57.650
Dans ce diagramme, vous pouvez donc voir que vous avez une machine C droite.

02:57.650 --> 02:59.870
Sur le côté droit, vous avez une machine.

02:59.870 --> 03:00.500
S.

03:01.050 --> 03:01.590
C'est vrai.

03:01.590 --> 03:03.720
C est donc l'abréviation de "machine cliente".

03:03.720 --> 03:07.590
C'est donc la machine cliente qui initie toujours la demande.

03:07.740 --> 03:08.820
La machine serveur.

03:08.850 --> 03:13.440
D'autre part, après avoir reçu la demande, la traiter.

03:14.060 --> 03:20.080
Bien, puis renvoyer le résultat à l'ordinateur du client.

03:20.090 --> 03:20.720
C'est vrai ?

03:20.720 --> 03:25.510
Le serveur est donc la machine qui n'initie jamais la communication, n'est-ce pas ?

03:25.520 --> 03:27.230
Il est la propriété du serveur.

03:27.230 --> 03:30.710
Cette machine serveur ne prend jamais l'initiative de la communication.

03:30.710 --> 03:36.710
Ils reçoivent uniquement les demandes générées par la machine cliente, traitent ces demandes

03:36.710 --> 03:39.020
et renvoient le résultat au client.

03:39.860 --> 03:45.890
Vous devez maintenant avoir compris quelles machines sont classées en tant que machines clientes et quelles machines

03:45.890 --> 03:48.410
sont classées en tant que machines serveurs.

03:48.560 --> 03:56.630
Afin de comprendre la programmation des sockets, il est très important de bien comprendre le fonctionnement

03:56.630 --> 04:00.740
de deux appels système importants fournis par Linux.

04:00.920 --> 04:05.570
Ces appels système sont l'appel système de sélection et l'appel système d'acceptation.

04:05.930 --> 04:12.800
Le système d'exploitation Linux fournit donc deux appels système pour permettre aux applications réseau américaines d'être efficaces.

04:13.400 --> 04:15.720
Nous allons en discuter.

04:15.720 --> 04:19.230
Comment fonctionnent ces deux appels système.

04:19.590 --> 04:25.260
Nous allons passer un temps considérable à comprendre le fonctionnement de ces deux appels

04:25.260 --> 04:26.010
système.

04:26.310 --> 04:33.750
En C, il est difficile d'écrire une application basée sur une socket sans utiliser les appels système select et accept.

04:33.750 --> 04:34.440
C'est vrai ?

04:34.440 --> 04:40.950
Ainsi, chaque fois que vous écrirez la programmation d'une socket en C, vous utiliserez certainement l'appel système

04:40.950 --> 04:42.960
select ou l'appel système accept.

04:42.960 --> 04:49.260
En fait, si vous écrivez des applications basées sur la programmation de sockets dans d'autres langages, il se peut

04:49.260 --> 04:53.460
que vous utilisiez la variante des appels système "select" et "accept".

04:53.490 --> 05:00.450
Il y aura certainement des API qui rempliront la fonction de sélection et d'acceptation des appels

05:00.450 --> 05:03.870
système du point de vue de l'entretien.

05:03.900 --> 05:08.040
Il est très important de comprendre ces deux appels, n'est-ce pas ?

05:08.040 --> 05:16.190
Lors de l'entretien, on vous demande donc d'emblée de décrire ou d'expliquer le système de sélection.

05:16.190 --> 05:20.030
Appeler et expliquer l'appel du système d'acceptation.

05:20.060 --> 05:20.930
C'est vrai ?

05:20.930 --> 05:26.930
Commençons donc par saisir l'idée de ces deux API, à savoir l'appel système de sélection et d'acceptation.

05:26.960 --> 05:33.410
Une fois ces deux appels système compris, les autres API de programmation de sockets se mettent automatiquement

05:33.410 --> 05:34.400
en place.

05:34.790 --> 05:39.800
Nous allons donc commencer par nous familiariser avec la programmation des sockets.
