HandsOn-Windows et Linux en C et C + + | Sonali Shrivastava | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Socket Session1 Aperçu

      17:31

    • 2.

      SocketBasicsPart1

      12:46

    • 3.

      SocketBasicsPart2

      21:16

    • 4.

      SocketSession3 Part1 TCP OSIModelPreview

      4:06

    • 5.

      Socket Session3 Part2 TCP Architecture en couches de réseau OSI

      14:10

    • 6.

      SocketSession3 Part3 TCP OSIModel RealWorldExample

      16:35

    • 7.

      Socket Session4 ServerClientMethodsWindows Part1

      21:38

    • 8.

      Socket Session5 ServerClientMethodsLinux Linux

      20:41

    • 9.

      Socket Session6 Différence ServerClientMethods ForWindows Linux

      12:35

    • 10.

      Socket Session7 ProgramExecution ServerClientCommunication Windows C++ Part1

      20:50

    • 11.

      Socket Session7 ProgramExecution ServerClientCommunication Windows C++ Part2

      20:18

    • 12.

      Socket Session8 ProgramExecution ServerClientCommunication Linux C Part1

      18:42

    • 13.

      Socket Session8 ProgramExecution ServerClientCommunication Linux C Part2

      16:28

    • 14.

      Socket Session8 ProgramExecution ServerClientCommunication Linux C++

      24:20

    • 15.

      Session9 UnderstandingHTTPServerClientCommunication

      28:19

    • 16.

      Socket Session10 ProgramExecution HttpApacheServerClientCommunication Windows C++ Part1

      19:08

    • 17.

      Socket Session10 ProgramExecution HttpApacheServerClientCommunication Windows C++ Part2

      13:27

    • 18.

      Socket Session11 ProgramExecution HttpApacheServerClientCommunication Linux C

      20:32

    • 19.

      Session12 Blocage de non MultiClientServer sélectionner 1stHalf

      23:47

    • 20.

      Session12 Blocage de non MultiClientServer sélectionner 2ndHalf

      16:42

    • 21.

      Session13 Program/exécution UsingSelect MultiClientServerCommunication 1stHalf

      28:53

    • 22.

      Session13 Program&Execution Sélectionner MultiClientServerComm 2ndHalf Part1

      18:26

    • 23.

      Session13 Program&Execution Sélectionner MultiClientServerComm 2ndHalf Part2

      12:50

    • 24.

      Session13 Program&Execution Sélectionner MultiClientServerComm 3rdHalf

      26:22

    • 25.

      SocketSession14 Makingsocket comme NonBlockingSocket MultiClientServerCommunication

      29:23

    • 26.

      SocketSession15 Program&Exection Makingsocket comme NonBlockingSocket MultiClientServerCommunication

      30:26

    • 27.

      Socket Session16 ApplicationSocketProgramming

      8:29

    • 28.

      SocketSession17 SourceCode

      0:15

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

312

apprenants

1

projets

À propos de ce cours

Avez-vous effectué une communication entre 2 processus ? Si NON, la communication client de Socket Server est bonne pour commencer.

Ce cours couvre la programmation de prises pour Windows et Linux aussi en C et C++

Il couvre plusieurs programmes de socket et son exécution pour Windows et Linux.

Couvre également le blocage et la non-blocage des prises avec l'explication du programme et l'exécution de celles-ci.

Avoir du code source partagé pour tous les programmes de sockets.

C'est une excellente technologie pour ajouter plus à votre CV

La programmation d'apprentissage de la prise de conscience vous paiera davantage dans l'industrie informatique d'aujourd'hui, tant sur le plan de l'optimisation que de l'argent.

Pourquoi apprendre la programmation de socket ?

C'est sur demande que la technologie continue jusqu'à maintenant.

En plus d'apprendre l'architecture de l'UC, l'espace mémoire et divers algorithmes, vous serez en mesure de créer des programmes efficaces et vous serez dans la liste des concurrents de bon programmeur dans cette industrie informatique.

Vous serez en mesure de craquer n'importe quelle entrevue et vous serez en mesure de rayonner dans cette industrie informatique car la programmation de socket est une technologie à la demande.

Pourquoi vous inscrire à ce cours sera la meilleure décision pour vous ?

À la fin de ce cours, vous acquerrez non seulement une connaissance approfondie de la programmation client Socket Server à partir de zéro pour Windows et Linux, mais vous aurez également une connaissance des couches de mise en réseau et de la manière dont elles jouent un rôle important dans la communication par socket de la source à la detsination.

Vous vous débarrasserez de écrire des programmes clients Socket Server avec leur exécution sur Windows et Linux aussi.

Comprendra en profondeur le blocage et la non-blocage de socket et sera en mesure d'écrire des programmes et de l'exécuter.

Vous serez en mesure de développer la puissance des compétences logiques et verbales aussi.

Cela vous permettra de développer votre carrière et de briller.

Vous serez en mesure de fissurer n'importe quelle interview dans l'industrie informatique d'aujourd'hui.

Ce cours couvrira tous les concepts de base de la programmation de socket non seulement avec une couverture de « comment coder », mais aussi avec des détails « Pourquoi cela est nécessaire et l'importance qu'il est » pour que tous vos concepts soient effacés de zéro et vous pouvez craquer toute entrevue donnant des réponses techniques couvrant tous les points.

Rencontrez votre enseignant·e

Teacher Profile Image

Sonali Shrivastava

TCP/IP Socket Programming HandsOn-Window

Enseignant·e
Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Aperçu des sessions1: Et bienvenue à cela. Autrement dit, la programmation de socket DB CPU ou se mêle comme le sait merveilleusement, en utilisant C acheté ainsi que C plus plus. Donc, ici, au cours de cette session, je vais énumérer les sujets que nous aborderons dans l'ensemble de ces objectifs. Donc, les métaphores, l'optique, je comprendrai les concepts de base de socket pour saisir que ce Amanullah il John lié afin de comprendre si la programmation socket. Ensuite, puis ensuite. Et nous avons vu l'architecture DCP, qui est également appelée architecture naturelle, aussi goin comme modèle OSI. Donc, ici vous voyez les composants du réseau d'eau ainsi que nous allons voir comment l'ombre afin d'apporter la communication de prise. Et nous comprenons cela avec l'exemple du monde réel. Ensuite, la prochaine session, nous verrons cette configuration, qui est nécessaire pour bombarder communication socket pour les deux fenêtres ainsi que B néant. Nous verrons également différentes fonctions de socket, qui est également appelée comme méthodes pour le cyber. La guerre décline pour Windows et Linux. Et une légère différence dans les fonctions de socket pour Windows et Linux, nous allons voir que vous avez session, ne comprendre la différence entre Windows OS afin d'apporter la communication socket. Donc, nous allons voir quel est peu la configuration, donc les fenêtres. Et une configuration de bac est donc celle de Lena. Alors, comment ont-ils posté quels fichiers d'en-tête sont nécessaires pour être ceux qui fois sur l'obligation de socket et les fichiers d'en-tête sont requis ou Linux. Ensuite, nous verrons ce que toutes les différentes prises rencontrées parties sont là quelque soit. Et neuf pour Windows et le robot socket manipule notre quantité nette. Donc, c'est très légèrement amis et les méthodes de socket. Nous allons donc voir toutes ces différences dans cette section. Ensuite, la prochaine session, nous allons commencer avec programme socket et nous allons également l'exécuter. Fenêtres barrées comme Venise pour nous. Donc, ici écrire différents programmes. Donc, ce sera bien la communication de socket de programme entre le serveur et neuf. C' est le plus simple cyber à neuf Jack de négations que nous verrons et nous allons également les exécuter pour ceux. Et nous comprendrons aussi les autres. Programme de hockey, o sur SCTP, Archie Cyberduck communication à neuf socket sur le PC, Barbie dans ces aspects. Seulement sait et nous allons également les exécuter de cette manière, être la construction de tous ces programmes. Ensuite, l'autre session, nous verrons ce qui bloque ainsi que ce sont des sockets non bloquants. Et même écrire ce programme ou la scène et l' exécuter afin de les comprendre plus. Mais nous verrons aussi comment atteindre mon serveur de déclins. Et nous verrons que nos différentes approches pour Obama, je pense que la communication socket de neuf serveur. Donc, la première approche de base, boire quelle ligne faire cependant ? Ainsi, vous pouvez comprendre que nos clients, que l'on met sur la salve niée et créer plusieurs fils. Donc, ce rayon décide et passe par cette approche. Donc, nous allons voir quels sont les inconvénients sont là dans l'utilisation cette approche n'est pas recommandé d'utiliser NAT à l'étranger. Et donc que je voudrais approches qui ont commencé afin d'éviter ces désavantageuses. Donc, l'approche suivante consiste à utiliser la Basilique. Donc, même voir ce que sélectionne et quelle est son importance pour atteindre la communication par satellite multipliée. Ainsi, les gens le comprennent plus efficacement en écrivant et en exécutant. Mais le système d'exploitation Linux. Ensuite, nous verrons aussi l'approche qui est de faire cela occupe Nagasaki et ne réaliser multi-ligne je suis négation. Donc, nous allons écrire le programme et l'exécuter dans le nez afin de rencontrer le socket comme non-bloquant et afin d'obtenir une communication de serveur multi-client sur donc j'ai le code source pour tous les programmes socket, la cohorte géante dans tout cela. Donc, vous pouvez exiger, après avoir compris la nourriture que j'avais expliqué sessions. Donc toutes ces choses, nous avons déjà fait ça et cause terrible. Je l'ai décrit en bref. Donc, je l'ai eu comme je vous ai expliqué ce que chaque session nous allons à des sujets que nous allons offrir en effet. Alors voyons. Première session, nous allons voir les bases de la programmation socket. Donc, cette session est dédiée à toutes les lois amino, celles qui sont liées à la programmation socket. Comprendre la communication entre le serveur et les aveugles. Nous verrons ce que fait socket, que dois-je taper source socket est disponible. Et dans les terminologies de socket liées à ce domaine et ce qui est le protocole de communication. Donc, toutes les terminologies liées à la programmation de socket que vous serez, vous verrez. Mais toutes les méthodes sont utilisées pour la paroi cellulaire et les méthodes de marbre sont utilisées pour la ligne afin de bien la communication de socket à billes entre le serveur et le client. Donc, toutes les pièces qui sont liées à la prise que vous couvrirez dans cette toute première session. Donc, c'est beaucoup la visite de rubrique afin de commencer la prise de négations. Donc, la prochaine session est dédiée à l'architecture ECP, qui est également appelé comme une architecture négative ou cour, mais toujours appelé comme modèle OSI parce session très importante. Donc, ce problème. Tout le réseau qui est des composants de netbook qui sont nécessaires pour apporter la communication de socket entre les lignes de solvant. Alors comment les composants communiqueront les uns avec les autres afin que notre sept Lion présence. Alors rivaliser l'architecture que j'ai décrit ici et dans cette session, j'ai passé par des conférences, mais la bobine de soutien de musique sera la liste. Mais par défaut, cette conférence sera distincte. Architecture de la couche réseau. Donc, ce sera sept composants ont été différents réseau Leo's. Je vais donc vous expliquer quel est le but de chaque E/S réseau de couche. Donc, c'est beaucoup B6 et vous le trouverez plus d'investissement. Vous comprendrez comment ces composants réseau communiquent les uns avec autres afin d'apporter la communication de socket bien avec cette information, avec cela déjà jours dans la première conférence, et nous couvrirons la deuxième conférence de la même session, que je vais vous expliquer que des exemples du monde réel et l'équité sombrer avec l'architecture de la couche réseau qui est l'avatar de l'audio architecturé TCP. Dans cette conférence, vous comprendrez un autre exemple du monde réel, vid.net Leo. Je vais donc vous expliquer comment ces composants réseau, comment ces réseaux jouent un rôle important dans l'exemple réel. Donc, cette deuxième conférence éclairera tous vos concepts des sept Leo's Network de l'architecture PCP. La session suivante qui est enseignée session qui serait liée à la méthode client de la barre latérale de socket spécifique de Windows. Donc ici, je vais énumérer méthodes clientes du serveur de socket de défense qui sont utilisées pour le système d'exploitation Windows. Donc je vais le couler avec le, donc ceci est dédié à cela. La prochaine session sera terminée. Linux ligne de serveur socket spécifique contre la pensée avec l'ancien. Donc, ici encore la même chose, mais ce sera spécifique au système d'exploitation Linux. C' est la différence très minimale entre les poètes Rita utiliser pour cyber appliquer ce que les fenêtres ainsi que pour le leader. Ensuite, nous verrons la prochaine session. Cette différence entre le système d'exploitation Windows spécifique ainsi que le socket spécifique frapper système d'exploitation Windows. Quelles sont mes pensées sont que les méthodes immortelles ou net Bolinas et travailler sur nos différences sont là entre Windows et Linux. n'y a que peu de méthodes qui sont différentes. Une forme spécifique, Windows et Linux. Et il n'y a pas beaucoup de différence sera également vu ici dans cette session. Ce que nos fichiers d'en-tête que vous devez utiliser si vous avez deux en vrac bras socket programmation pour système d'exploitation Windows et comment il est différent pour le système d'exploitation Linux. Ensuite, nous verrons ce qui est configuré est nécessaire pour système d'exploitation Windows afin d'effectuer la programmation de socket, ce qui est que nous construisons un démarrage est nécessaire, mais le système d'exploitation Linux. Ensuite, dans cette prochaine session qu'une session six, j'ai Gvd Windows spécifique programmation socket TCP en C plus plus. Donc ici ceci, ceci, c'est la communication socket de base entre le cyber et comment la cartographie aura lieu entre le serveur et le client. Et cela, cela sera vu pour le système d'exploitation Windows. Et nous allons écrire le code en C plus. Donc, cela vous aidera à écrire le programme sur l'IDE ou doc ID VB en utilisant et comment la communication a lieu en les exécutant. Et la prochaine session sera cependant, programmation socket en C et C plus, plus ce que le système d'exploitation Linux. Donc, cela semble la programmation socket avant le système d'exploitation Linux. Et lors de l'écriture de la puissance ainsi que C plus. Donc, il y a deux conférences parce que j'ai couvert en C ainsi que je l'ai couvert C plus. Donc c'est encore une fois le programme. Vous allez écrire le code et l'exécuter pour le système d'exploitation Linux. Donc, dans la prochaine session qu'une session huit, peut-être comprendre une publication de ligne HTTP sur TCP. Donc, une fois que vous comprenez cela, la communication VCB mal comporté couvert session 467 pour Windows et Linux. Ensuite, vous avez entré, vous comprendrez comment ce serveur HTTP neuf peut également être, la communication peut également se produire sur PCB. Donc, c'est notre gain, sera de faire le coordonnateur du programme pour avant. Dans cette session, nous comprenons poster appelé les concepts comment serveur HTTP Apache communique avec le navigateur Klein sur leur PCP. Donc, je vais vous expliquer, bien que les choses comment Apache a dit ce qu'il communique avec le client, c'est chaque fois que vous donnez un lien sur le navigateur, n'importe quel navigateur il peut être, qui est Mozilla, Firefox, ou Chrome. Ensuite, comment cette requête est envoyée du côté client est du côté navigateur à ce HTTP Apache côte à côte, et comment le serveur répond à ce déclin sous la forme de l'en-tête. Donc, tout ce que j'ai abordé au cours de cette session, je veux ce que fait cette ligne et qui a dit quoi et comment dit ce qu'ils disent ? C' est génère deux plan et maintenez la page se charge. Quelle merveille, quel que soit l'utilisateur a donné un lien sur le navigateur que cette session viendra rencontrer ou théâtre tous les concepts de serveur HTTP neuf publication. Donc, cela peut être si vous allez dans l'ordre selon la session, si vous avez acheté une nouvelle session 60, session sept, et puis vous allez à la séance huit, alors ce sera en vous parce que donc presque la programmation est va écrire pour ça. Donc, la communication sera similaire. Méconium minimum V3. Donc, cette compréhension USB ceux que nous avons couvert toutes les sessions et les incréments ou bien. Donc l'indécision en dédicace sur le dos. Ensuite, la prochaine session sera la même chose qu'à propos de l'Afrique. Je suis dérangé par cette stupide communication STDP Cedric 9. Nous allons commencer cette session par l'exécution spécifique du bus VW de la publication client du serveur HTTP Apache dans C plus plus. Donc, ce gâteau est requis conditions préalables. Donc, lorsque vous marchez à travers la session, alors vous seul devriez visiter la session. Parce que c'est la compréhension de la façon dont cette communication a lieu. Et après avoir compris la communication et fantaisiste, alors. Si vous avez le système d'exploitation Windows, ou vous pouvez écrire un code. Quel dB supplémentaire, serveur Apache. J' ai toute notre programmation et l'exécution ou comment je devrais vous donner un B27 communique avec Klein est D plus plus. Donc, nous faisons le programme pour cela et pour le système d'exploitation Windows en C plus y. Donc, le même programmé par pour le système d'exploitation Linux en C. Donc, selon le système d'exploitation que vous avez, si vous avez Windows, vous pouvez aller par le biais de cette session. Si vous avez une souris, vous pouvez passer par la session. Session. Étant donné BC, comment puis-je atteindre ma communication de serveur décline en utilisant le socket dans le système d'exploitation Linux. Donc, ici, étant donné une récupération tandis que le c. Donc maintenant très rapide conférence, nous serons forcés ce sombre bucky ainsi que les sockets non-bloquants. Même le même la toute première approche afin d'obtenir mois déclinent plusieurs communications à ce en utilisant la fonction select. Donc, même voir ce qu'une fonction select, select, comment il joue un rôle important et ce qui devrait arguments sont là. Donc, la prochaine conférence que nous verrons, nous allons écrire le programme et l'exécuter dans tous en utilisant la fonction select afin d'atteindre ma communication de serveur décline dans cet homme que je comprends même tout mon client ou Sybil par cette approche, en utilisant la fonction select. Ensuite, dans la prochaine conférence, nous allons utiliser l'approche différente afin de réaliser mes déclins plusieurs communications. Et c'est la deuxième approche en faisant le socket comme non bloquant. Donc, nous allons voir comment l'utiliser. Je n'ai pas besoin de ceux qui sont nécessaires après avoir compris cela dans la conférence trois. Ensuite, dans la conférence quatre, nous allons écrire le programme et l'exécuter en faisant ce socket comme non-bloquant. Que cette pensée dans cette conférence trois, puisque même comprendre comment faire la prise est non-bloquant, Eh bien, la fonction eval est utilisé et ce podomètres que j'ai utilisé dans cette conférence en disant cette connaissance de celui-ci bulle dans la conférence trois nous allons écrire le programme et les exécuter, faisant le socket comme ne pas bosseler et comment atteindre multi-ligne je suis négation. Donc, ce gouvernant plusieurs programmes afin d'atteindre mon déclin de la communication cellulaire par différentes approches différentes. Puis dernier, nous avons vu l'application de la socket. Il a donc noté que nous allons voir la ligne de prise des vétérans AVR. Sont, vous n'êtes pas en mesure de voir les exemples du monde réel dans lesquels le socket est utilisé. Donc maintenant de cette façon, nous allons couvrir toutes ces sessions dans cette poursuite contre CBR, accompagnant chacun et tout sur le système d'exploitation Windows, ainsi que pour le système d'exploitation Linux en C comme Venise, C plus plus. Donc tu trouveras ça plus intéressant. Et il est expliqué avec le programme d'ordinateur portable et l'exécution. Selon la Lena et les arcs en ciel. Vos objectifs. Je ne suis pas, si vous partagez vos commentaires comme des hommes, comme des lectures comme un moyen de ne pas la viande et m'a influencé pour publier ces vidéos à la demande. S-bar, votre besoin. Donc Tank, vos amis. Merci beaucoup. 2. SocketBasicsPart1 1: Bienvenue à cette session de base de socket, qui est Betty, AS session de ce vétéran des objectifs entiers, je suis vous faire marcher à travers différents sujets à est ce que cette socket, quels sont les types de la socket existent ? Qu' est-ce que la logique dominante est associée ? Douille. Afin de comprendre à la prise prise Rami session précédente et pourquoi cette prise est nécessaire. Quelles méthodes de socket sont disponibles sur Windows et le mur ? Les méthodes de socket sont disponibles sur les unités seront différentes. Alors commençons étape par étape. Passer au tout premier sujet, qu'est-ce que socket ? Prise ? Il s'agit d'une combinaison des deux nœuds. Mais notre prochain livre, ou vous pouvez dire la communication entre les deux processus. Laisse-moi te faire comprendre par digramme. Se déplacer vers les objectifs d'un adulte n'est pas la définition dit socket est une communication entre deux nœuds. Supposons donc que vous ayez n4, n1, n2 et n3. Et comme il s'agit d'une communication entre les nœuds ou si netbook. Alors laisse-moi le nommer. Donc c'est un, c'est trois. Et la communication entre eux, c'est-à-dire. Et appelons ceci comme à Internet. Elle est vendue. Qu'est-ce que socket ? Il s'agit d'une communication entre les nœuds ou un réseau plus large qui est Internet. Donc oui, vous pouvez voir ici, nous avons payé ces n1 et n2. Ce sont les neuf noeud et ce noeud trois, comme je l'ai dit, quand aucun initialement émis ou discuter des détails à ce sujet en fait, sorte que vous comprendrez ce qu'une barre latérale, ainsi que ce sont la communication qui a lieu entre noeud un et noeud trois et noeud deux et noeud est la communication socket est via cette communication socket ou si national. Donc, cette définition qui est une communication désertique de nœuds bleus. Vous avez vu vérifier leur cou sur le réseau. Encore une fois, voir communication entre deux processus. Donc, cela peut être fait de sorte processus, processus client un, processus deux. Et c'est ça que je vais fermer. Bien qu'il ne s'agisse pas de délais. Donc ce que vous voyez ici, vous comprendrez mieux. Donc il, j'aurais osé sortir, bien que sur le livre du cou, qui écoute sur le port particulier et a une adresse IP. On l'appelle comme une sorte d'un. Donc celui-ci a vraiment besoin de l'argent. Donc, il de chaque côté d'un mécanisme en fait on devrait être à l'écoute sur particulier commandé une adresse IP. Et soit il devrait envoyer la connexion en fait. Donc celui qui écoute, en fait ceci, le côté du mode élément et celui qui envoie la connexion. En fait, il y aurait bien des nœuds clients. Donc, ce sont le nœud client, c'est-à-dire le nœud un et donnez-lui un expéditeur et une action, vous savez. Et ce Nord écoute en fait, donc ce fort comme ce côté de lui devrait être et ce numéro de port particulier et il devrait avoir une adresse IP. Donc, supposons que vous avez, vous vous demandez la communication entre une machine hôte différente qui a un système d'exploitation différent, une machine différente. Donc, vous savez, Prudence, si vous êtes connecté ou si elle se déplace, alors les adresses IP de la machine stupide, certaines données doubles se vanter machines qui sont connectés ou si netbook beaucoup il avait eu une adresse IP et Adam à cette adresse IP. Donc, si vous voulez que la communication de socket ait lieu, donc on devrait être aligné, on devrait être subtil. Donc, ce côté de l'art, que vous pouvez décider, le mécanisme est qu'il devrait écouter. Il devrait écouter le numéro de port particulier ainsi que l'adresse IP. La machine humaine a une adresse IP. Chaque machine a une adresse IP. Donc, il devrait écouter, il devrait écouter en particulier. Vous verrez tous les mécanismes pas à pas. Qu' est-ce que l'écoute en détail et quelle est cette adresse IP ? Quel est ce numéro de port ? Donc juste pour vous faire comprendre, juste pour visualiser, faire, visualiser ce que exactement la lumière du soleil comme les hommes en tant que clients. C' est donc ce que j'ai mentionné. Donc, passer à la suivante. C' est une note importante. Chaque processus qui créent le socket pour la communication. Le point suivant, les deux processus peuvent communiquer entre eux et il plié la socket a le même domaine ainsi que le type de socket. Donc, ne vous inquiétez pas de ce domaine d'adresse et le type de socket, toutes ces terminologies et vous faire comprendre et d'autres diapositives. Donc juste comprendre que plus important ou ils disent que ce processus est en fait manquant de communication intermédiaire. Un pour communiquer là-bas. Et ils ont mesuré à travers la prise. Vous auriez dû avoir une socket réellement créée pour eux. Donc, supposons que personne ne pensait qu'en tant que nœud client, avoir à ancrer avec la route sud ou quoi ? Cet internet. Ensuite, nous devons créer une socket pour ce neuf noeud. Et nous devons créer le socket pour le mode serveur. Et le second à ce sujet est de dire que si vous créez une socket pour le neuf volts, disons le nœud un. Si vous créez également le socket pour le logiciel qui est le nœud 3, alors le type du socket. Et puis probablement la même chose. Donc, je vais faire votre quel est le type de socket et ce que le domaine des centres. Mais juste fabricant d'outils, sans doute que FindAnswer, Pourquoi devrait avoir la même adresse domine occupé. Voyons donc ce qui fait toutes ces idées dominantes. Donc, ce domaine d'adresse, que je pensais dans la diapositive précédente. Donc, si vous parlez de l'adresse Doumani à nos types de nourriture de dope. Et en supposant que le premier est la description de domaine unix est que les deux processus. Mais en partageant le système de fichiers commun, la société lui a donné l'adresse de la socket. Ce sera la chaîne de caractères, qui est ensuite entrée dans le système de fichiers. Donc, le domaine d'adresse, que j'ai dit que c'est le premier est un domaine unix bien que c' une chose simple en fait que si les deux processus de plus de 90 pour communiquer entre eux par stock lui donneront un dedevenir par le biais du système commun de tuyauterie. S' il pensait à l'égard de l'isolé sera le partage de l'écossais par le système. Et l'autre chose est que s'adresse missionnaire, que ce soit pour cette socket avec un type de données de chaîne, qu'il s'agit du domaine unix en fait. Et je ne suis pas bon. Dipole, l'adresse domine ce domaine infini. Donc V2, pour voir ce domaine Internet, vous allez l'utiliser, le plus couramment utilisé en fait. Donc, dans le, dans l'image de la sonde et récupération unité de récupération miracles incorporables est le plus couramment utilisé. Alors, qu'est-ce qui va se passer ? Ici ? Les deux processus qui s'exécutent sur cette machine hôte communiqueront sur Internet la même chose, que je ne connais pas. Donc, deux processus disent que le noeud un et le noeud trois, car ici le n1 fournit le noeud et le noeud trois. Donc noeud, donc ces deux noeuds en fait le soulèvement sur différentes machines. Et donc ils seront niés ou ce que l'internet, s'ils communiquent ce qu'ils signifiaient réellement cette bobine, leon ayant à ce domaine sur l'infini homing. Et les adresses de la socket de l'is-une adresse prévue était mon semble simplement dire que oui, que les adresses ou cette machine ou cette machine qui est désignée par l'événement qui se passe par l'adresse IP ou adresse IP de la machine m'a rendu visite à la fabrication d'un tambour. Et cet ensemble de l'élément ONE, en fait, il aura l'adresse IP de l'adresse IP de la machine num. Le satellite est en cours d'exécution. Donc, il est aussi simple que vous pouvez le comprendre et ce diagnostic. Donc V0, V0 faisant usage du domaine prévu parce que c'est le plus couramment utilisé. Donc, c'est tout sur les données d'entropie sur leur adresse Internet sera sur le groupe Kentucky il. Donc, tout est à propos de ce domaine, que nous avons pensé et ce type de socket. Donc, nous avons vu dans la diapositive précédente en fait la note importante processus manuel qui communiquent les uns avec les autres. L' homme qu'ils ont le même ou détruire moi et Saint type socket. Donc maintenant, vous pouvez comprendre que si le noeud fournit le noeud et le noeud trois est un ensemble d'inconnu. Et en fait, il peut avoir à rencontrer la communication sur la socket en utilisant la socket entre Norman et noeud v. Donc, ils devraient avoir le même domaine d'adresse. Donc, je ne sais pas, devrait avoir en fait que ce domaine en tant que domaine unix, s'il a un domaine unix que 3D cellulaire connu devrait également avoir le domaine unix. Et si vous voulez le code indenté, en fait que je vous ai expliqué, alors la normale devrait aussi avoir le domaine du dîner comme adresse. Et le nœud trois, il y a beaucoup plus de détails ont également envisagé albinisme dans le dîner. Donc, bien qu'ils aient la même chose, soit ils devraient avoir les deux des unités pour moi, soit ils devraient avoir, cependant, infini. Et la deuxième chose est que vous pensiez devrait avoir la même prise directement au nœud un et au nœud trois afin de communiquer le véhicule sur la prise. Alors voyons ce que ce type de socket fait ? Il existe deux types de socket en fait. Donc, c'est un positron est juste socket de flux et le socket de datagramme point moins non financé. Voyons donc ce qu'est ce socket de flux. Donc, il utilise le protocole TCP. C' est donc un protocole de contrôle de transmission. Alors qu'est-ce qui a brisé épistémiquement le cycle, sorte que j'ai traversé une fois en fait, ce que j'ai probablement fait. Donc, le protocole TCP aura un ensemble de règles réellement enrichir le socket de flux sera ou sera. Et oui, le socket in-stream vient il communiquera comme un flux continu de protection. Alors quoi, quel est le comportement de la socket de flux ? Par stonewall, il utilise le protocole TCP sombre et l'activité de communication non plus. Je suis ici, vous voyez le sable en fait, si vous utilisez Steam socket, donc la communication sera bidirectionnelle parce qu'une fois que cette connexion est développée, dans le cas de cette prise de courant continu courroie à un poubelle v3 transport. Cela se produit en cas de socket de flux de points. Et dans le cas de la socket de datagramme. Il utilise UDP, est User Datagram Protocol. Le message entier sera envoyé à la fois. Donc, il s'agit de la socket de datagramme. Donc nous allons voir à propos de ce protocole TCP et protocole UDP, comme je vous l'ai dit, ne regardez pas toutes les règles de configuration moyennes pour ce TCP seront définies racines dopées. Il est différent de celui de l'UDP. Et nous avons vu courant courant courant est flux électoral continu ou productif et être transformé dans lequel ici avec message sera envoyé à la fois. Alors maintenant, voyons ce que fait ce TCP et UDP. Donc, une fois que vous voyez cela, TCP et UDP comprendront quel est le socket de flux que vous devez utiliser, et quel est le socket de datagramme. 3. SocketBasicsPart2 de la basePartie2: Venir au protocole de communication. Donc, cela est appelé comme protocole de communication, fait UDP, protocole de datagramme utilisateur. Il est également désigné de cette manière qui est souligné ins et ce sol, c'est ce que le diagramme. Alors qu'est-ce que vous battez en tant que protocole User Datagram. Donc oui, non, tout le message sera exécuté en même temps. C' est combien manger dans le cas du point d'entrée donné par l'utilisateur. Et ce n'est pas fiable. Parce que pourrait n'est pas fiable car supposons qu'il envoie les données d'un processus à un autre. Et supposons que C 9 descendant un jour les données sombres du serveur Windows ne sont pas des paquets formels. C' est un nombre d'octets. Si certaines données sont perdues entre les deux, mais non plus ceux de OK. Dans ce cas, cela ne comprendra pas comme toute perte de données du client au serveur, et aussi le client ne sera pas le même jour dommages perdus. Vous pouvez comprendre comment ça se passe. Il n'est pas fiable du tout parce qu'il avait même si le paquet est perdu, alors un de sorte que le client ne sera pas à nouveau, San Diego a dit quoi ? Vous avez été à bord qui collectent également l'élément de sondage o en fait que ces paquets sont perdus. Donc, cela est appelé comme un peu fiable. Et pourtant, il est sans connexion parce qu'il n'y a pas de connexion qu'ils ont aimé en fait ne va pas se connecter réellement sur le côté. Mais tout le noeud point sur ce protocole User Datagram. Parce que je débatte En fait la raison pour laquelle il, cette affiche, alors qu'il n'aura pas les Borden qui font sans connexion en fait, donc, cela réduit leur temps en fait qui nous a ordonné dans une certaine connexion. Une autre chose est que le paquet est grand, il ne lui enverra pas de faisceau. C' est donc aussi une chose qui évitera leur tâche réellement. Donc, il mégapoles en elle est un léger parce qu'il ne ferait pas une telle tâche réellement. Et aussi, il ne fait pas la vérification de l'éditeur. Donc, c'est que les paquets métalliques sont perdus que ce n'était pas encore, poncés. Il ne fera pas si la connexion de l'éditeur. Ce sont simplement les messages. Il ne voudra pas que réellement au-dessus de la perte de paquet et il n'y a pas de connexion. Donc, toutes ces choses, quand vous considérez inventé comme un léger parce que toutes les étoiles, il éviter la section. Et il n'est pas non plus fiable du tout. Mais il fournit la diffusion en cas d'UDP. Par exemple, l'exemple en direct de UDP que je peux vous dire est le jeu multijoueur léger. Je n'ai pas ce qui se passe réellement dans les données de l'envoi du client au serveur, alors ces données ne seront pas sable. En fait, la raison en fait incase du jeu de nuit multijoueur parce que ce sera, cela permettra d'éviter réellement que la perturbation ou large ce retard en fait sont à nouveau envoyer l'expéditeur du message qui a reçu par cette humeur ou affecter le jeu si elle est légère. Donc, pour éviter de tels cas, utilise réellement UDP parce qu'il n'envoie pas le paquet. Encore une fois. Mais la prochaine diapositive, nous verrons quel est ce protocole de contrôle de transmission TCP qui est désigné par la chaussette et le flux scolaire. Donc Yarn affiche garçon, il enverra et recevra les flux d'octets de conduire arbitrairement. Ainsi, les flux seront envoyés directement de l'expéditeur au destinataire, du client au serveur, ou vice versa. Donc, la communication peut être de grimpé solo, neuf, vice versa. Mieux, mais nous parlons de cette programmation de socket. Il peut être d'un, de l'expéditeur au destinataire, du destinataire à envoyer ou si je rêve des octets peut être envoyé en fait dans le cas de ce TCP et marcher par Platon pipe vous pouvez voir et tous les conseils à laisser sur l'architecte et livré dans l'ordre. Donc, puisque ce TCP être le voir comme un fiable, parce que en soutenant l'huile, plus vieux par l'instabilité dans le bon format va être transmis de l'expéditeur au destinataire, ainsi que l'ordre en fait de la paquets. Donc, il s'oppose. Toutes les données sont divisées en petits paquets. Paquet un, paquet deux, paquet trois du centre, il sera envoyé au récepteur. Il est d'un client à un serveur. Donc, dans le récepteur qui n'est pas dit si ce sera le même dans le même ordre de séquence et l'ordre dans lequel il a été envoyé du client ou du centre. Donc, c'est beaucoup de fiabilité. En plus de parler de cette ECP, perte de paquets transitoires de masse d' Adobe, il bacause. Donc, ne pas configurer la connexion et la maintenance. Donc, il n'y a pas défini dans une fermeture ou visites, la connexion ou la connexion se rompt. Donc, il est très fiable en fait quelques photos perdues. L' autre extrémité apprendra à savoir qu'il y a une perte financière. Donc aussi, il est fiable parce que si certains paquets sont perdus, encore une fois, les paquets peuvent être transférés de l'expéditeur à des jours. recevoir. Un poids lourd en fait, parce que toutes ces tâches qui ont besoin de faire ont besoin de renvoyer les données des données est perdu. Ensuite, il doit faire l'éditeur en vérifiant qu'il envoie des données actuelles afin qu'il doive faire tout en vérifiant l'erreur et en la rectifiant. Donc seulement les démarrages ont été associés à ce TCP. Et donc c'est un lourd. Il ne prend donc pas en charge la radiodiffusion et il est inférieur à celui de l'UDP. Vous pouvez comprendre pourquoi TCP plus lent parce qu'il fait cette tâche en vérifiant l'erreur de rectifier conçu pour envoyer la proposition, il, faire une connexion à travers le récepteur, toutes ces choses, tâche, tactiques, temps. Donc, il est plus faible par rapport à l'UDP, mais il est plus fiable, plus préféré en fait en fonction de l'utilisation. Donc, en fonction de l'utilisation, vous pouvez utiliser TCP et vous pouvez utiliser UDP. Donc, lorsque vous utilisez un site HTTP ou en utilisant HTTPS, vous savez, chaque fois que vous visitez un site qui est réellement HTTP, en utilisant HTTP deux-points WW, bulldog bond lac, et jamais vous donnez, investissez ce format. Ensuite, ce HTTP ou HTTPS qui est plus sécurisé. Si vous ajoutez un HTTP. Donc tous ces HTTP, HTTPS. FTP, protocole de transfert de fichiers ou telnet. En fait, toutes ces choses utilisent ce protocole ECP, qui est le protocole de contrôle de transmission, et c'est le socket V6 en fait, maintenant vous étudiez plus à ce sujet. Et aussi depuis que MON s'est engagé sur HTTP. Je vais donc vous expliquer à la toute dernière conférence. Les dernières conférences seront en fait avoir la programmation en fait de HTTP en utilisant ECB. Donc même ce n'était pas C. Si simple communication client de serveur en utilisant ECP aussi, nous verrons d'autres programmes peu pratiques de distribué en utilisant le PCP. Comment ils communiquent réellement comment le navigateur communique avec le serveur Apache, comment cette communication se passe. Http slovaque neuf ou si TCP. Donc toutes ces choses, nous le couvrirons. Alors ne vous confondez pas. Si vous, si je parle de ce domaine et sont mis en sourdine MOOC étape par étape. Alors voyons voir en fait. J' espère donc que vous avez compris ce qui est ce PCP et ce que cette UDP passe à la prochaine diapositive. Maintenant, ce conseil, donc aussi la chose que j'ai mentionnée dans ma diapositive précédente que les hommes décident quand je joue moi communiquer s'ils ont le même tuyau de prise et le même domaine d'adresse. Donc, type de socket que vous avez vu socket de flux. Le client du serveur doit avoir un socket de flux pour communiquer entre eux ou ils auraient dû penser que les deux devraient avoir le socket de datagramme pour communiquer entre eux ainsi qu'ils devraient avoir le même. Et il y a un domaine en fait soit domino indépendant signifie toujours l'un ou l'autre d'eux devrait avoir dans un incroyablement, l'un d'eux devrait avoir des unités pour moi. Donc maintenant, revenons à ça. D' accord. Oui, celui-là. Donc, décidez par le client final en fait pendant l'application réseau socket, vous avez des comportements différents. Mais le modèle général pour créer un flux CQI, PCB, serveur IP et client. Donc, ce que tout cela décrit est que dire que le satellite implique réellement que nous devons développer la socket pour les deux d'entre eux. Nous avons vu cela dans un très de votre côté aussi. Ont-ils des prises différentes ? En fait, si vous voulez communiquer entre eux, applications Kadhafi ou des sockets de défense sont nécessaires. Et les deux, et je crée la socket en fait. La deuxième chose qui était la création de la méthode socket, en fait des méthodes ou des sédiments dans la création de socket client sera la même. Donc, cela peut même commencer le mois prochain. Visitez effectivement différentes méthodes qui sont utilisées tandis que le socket pour la communication client sédimented, nous verrons former ces éléments de travail a eu lieu psi u, et de cette manière vous procédez. Voyons donc de ce côté, méthodes de réseau webinaire qui sont utilisées sorte que leurs méthodes de serveur de socket de défense et différentes méthodes de réseau aveugle sock socket. Maintenant, voyons. Maintenant aussi dans ces méthodes et prétendre que vous n'étiez pas tout est occupé quartier quand la machine de but, quel rôle est présent pour les machines Linux ? Donc juste engendre de parler. En fait, ce mouvement net se produit qui est répertorié pour le satellite. En fait, les sockets est presque similaire et en fait assez fenêtres et nez pointu. Seul Manon a construit un pour les API ne l'est pas. Les méthodes ne sont pas présentes. Dans le cas de la liste Unix, tous à la fois sont présents dans KSR Unix. Alors voyons. Donc, ce côté socket où les méthodes réseau qui sont utilisées. Donc, qu'est-ce que cela signifie faire et aucun site évité de côté réellement pour créer la socket. En fait, dans le cas de Windows. Donc, Windows, nous devons initialiser W. Je vais vous expliquer ce qu'est une justice. Je vous donne la vue d'ensemble de quoi, quelles méthodes vraiment en utilisant une discussion détaillée dans la prochaine session va en fait cela et je vous explique comment, ce qui est WACC, comment l'initialiser. Donc, cela est utilisé pour, cette méthode est utilisée dans le cas de Windows. Donc, cela n'est pas utilisé dans Linux. Le moment suivant qui nous attire des méthodes côte à côte, qui est une veillée avait énuméré ici. La méthode suivante est de créer le socket pour ce WSDL initialisé et censé être fait alors que Windows ne vous dérange pas un Linux. Mais créer une socket est généreux. Donc, toutes ces méthodes qui sont listées sont générales pour Linux ainsi qu'une minuss. Donc, en créant une socket, en fait votre diplôme à une socket du côté logiciel, nous devons lier la socket. Alors maintenant ce liant écouter, accepter tous ces inexpliqués vous dans les conférences du Nevada qui sont dédiés à tenir l'action d'expliquer quelles méthodes sont présentes. Ce que j'ai vu était huit et quels sont les paramètres ? Oui. Opposition de passer à lui. Quelle est la fonctionnalité de chacun d'eux en fait pour célébrer comme site Melissa Klein. Donc, en mettant fin à la prise, donc mais je vous ai expliqué que Panama a dit quand il a menti, comment communiquer o les données hors ligne. Alors pourquoi ne pas écouter un numéro de port particulier, une adresse IP ? Autrement dit, vous voyez ceci, bind, le socket signifie que nous devons nous lier à un numéro de port particulier. Aller avec réel expliqué en détail dans la prochaine conférence. Et écoutez ceux en dehors de la vitamine B, écoutant sur cette prise, une fois qu'il est lié à un numéro de port particulier, c'est tout déplacement sur l'adresse IP. Il a une adresse IP. Il écoutera sur cette socket qui achète pour décider quoi écouter. Et puis il sera simplement connecté, que la cécité ET la connexion, puis il sortira de la connexion. Il doit donc faire ces tâches avant d'accepter. Il doit se lier à un numéro ODE particulier. Il doit écouter ce numéro de port et expliquer en détail. Et puis il a, alors c'est, c'est un bloc acceptant cette connexion, et cette connexion est acceptée, alors il est capable d'envoyer les données au client et de recevoir les données de cette mine. Et une autre méthode est la dernière méthode est déconnectée nous perdant réellement la connexion. Donc, ces méthodes d'ordre, ces tous les processus se produisent dans le regard sur le trottoir extérieur, tout trouvé sur la fonctionnalité que nous avons à faire en fait. Et mon garçon, l'extraction des fenêtres est qu'on doit initialiser les risques Ws. Ces choses sont communes à Linux ainsi qu'à Windows complétant socket à déconnexion. Eh bien, non, passons à comprendre pour voir quelles méthodes sont là pour le côté client. Encore une fois, la même chose. Nous devons initialiser Ws en cas déconnecté également. Donc, c'est UNEP sur Windows, il n'est pas applicable pour Linux. Nous devons deuxième chose, nous devons créer un socket vendu streaming. Je connais la création de socket. Nous devons faire ce que le client ainsi que pour le servo car ce sont les différents processus d'application lui laissant différentes sockets. Créé en fait par, comme je vous l'ai dit, quatre, dit, Qu'est-ce que je vais communiquer ? Le socket doit avoir le même type de données de socket. Nous avons vu le type de socket. En fait, il peut être vu, il peut être soutenu par Akos. En fait, nous avons vu les types de socket de flux. Vous avez des amis seniors, stream doc socket. Il devrait avoir l'une ou l'autre socket de flux sur l'un ou l'autre datagramme acheté. Le client et le serveur doivent avoir le même socket en fait. Donc, nous devons créer une socket. Ainsi, vous pouvez voir dans les conférences comment créer un socket, comment donner ce domaine occupé ou concurrents. Et puis vous comprendrez, alors nous devons nous connecter. Donc, comme je vous l'ai dit ce contour, la règle est de simplement se connecter à l'âme saura comment se connecter avec le solaire. Parce que déjà le côté de celui-ci est lié à numéro de commande particulier et à l'écoute de ce numéro de port. Donc, avec l'aide de cela seulement si je suis va me connecter au serveur. Alors ne vous inquiétez pas de toutes ces fonctionnalités. Juste que je te donne un quoi tu fais affaire ? Nous allons discuter, vous verrez dans la prochaine conférence qui est dédiée à toutes ces explications macro. Et puis envoyer et recevoir la demande une telle coupe à travers la salve qu'elle a échappée avait été envoyer les données ainsi que recevoir les données. Et puis le dernier. Donc ce sont d'autres méthodes pour ceux et mon site. Donc, voir en fait ces méthodes. Maintenant, nous avons fini avec les risques de prise. Alors, qu'est-ce que Stephen commence ? C'est juste une valeur nulle. Qu' est-ce que vous évitez réellement les sujets que nous allons couvrir En fait, dans notre rangée. Nous couvrirons le modèle OSI, c' est-à-dire le modèle d'interconnexion de système ouvert. Cela va étudier, c'est un modèle de référence pour netbook. C' est très important. Il est appelé schéma de bloc de réseau en couches ISO vous donnera la vue d'ensemble de tout le système de réseau. Il simplifie en fait, vos réseaux routiers est système de réseau complexe en différents composants différents et décrivent comment ces composants communiquent les uns avec les autres discipline ParaView. Pour également se débarrasser du problème ne ou vous comprendrez comment un jour envoyer réellement tenir les données envoyées de l'expéditeur au destinataire et vice versa dans différents processus différents, en fait différemment par différents, couche différente Bode diagramme. Ce que toutes choses étaient point O allèles vient en compte. Quels sont les différents exemples, protocoles facilement ou utilise. Donc, cela, je l'ai simplifié de manière très facile en fait. Et c'est très important pour tous. Étudiants universitaires. Seuils de pensée pour les développeurs, ainsi que cela va effacer vos concepts de base simplement pour en parler. Dans la rubrique suivante, que je vais couvrir la ligne de trottoir et aller API socket. Depuis ce que nous avons étudié ici à coïncide disponible pour fenêtre. Donc c'était un côté client pour la communication de socket que nous allons étudier dans cette conférence, vous allez sombrer dans la guerre froide. Mais ME fait ce que toutes les fonctions sont utilisées en détail. Et puis nous allons étudier ce qui est dit à propos de la méthode de socket Linux en ligne. Et puis nous construisons un programme pour PCP, a dit à propos de la communication de neuf socket sur la carte, mais vous allez écrire le programme pour communiquer. Entre l'ami forcé fichier en utilisant ce protocole TCP ont de l'esprit et nous allons voir comment ils communiquent, comment le serveur communiquer avec Ty et de l'aide. Je vais envoyer un message au serveur. Comment n'importe qui répondra à cette ligne. Donc, nous allons faire l'exemple pratique, droite, mais programmer un par ID et nous allons l'exécuter. Donc la prochaine chose, qui sera une autre chose que je pensais en fait que c'est très important. C' est donc une raison pour laquelle je vais couvrir avec son programmable. Donc, puisque je vous ai dit ce qui est HTTP, il utilise TCP. Donc même voir ce programme en fait, nous allons voir ce que fait HTTP et la programmation de STDP, soi-disant bloc encore ID. Ainsi, vous pouvez comprendre ce qui est le site HTTP de l'automne. Donc, vous trouverez cela plus intéressant parce que la vie quotidienne. Maintenant, Internet devient si commun pour vous tous que nous sommes habitués à ce avons simplement quelque chose que nous devons trouver réellement être disponible sur Internet. Les soldats d'Achille ont toujours cette chose, vous serez au courant de ce qui est HTTP ? Il suffit de donner des deux-points HTTP ou le nom du site réellement, que vous voulez visiter. Niveau vous a expliqué comment le navigateur communique, comment tout ce que vous donnez le nom du site réellement sur votre navigateur, qu'il est un navigateur Chrome, navigateur Internet Explorer. Comment il parle au robot en fait idiome comment il récupère les données et comment vous y arrivez. Guitare, au niveau de votre application, vous écrivez le programme en fait avec l'aide des connaissances que nous avons étudiées, la conférence des éleveurs, vous identifier comme très facile. Une fois que vous avez juste à commencer, vous devez écrire le programme avec moi. Et vous comprendrez la Conférence embryonnaire sept, compte tenu de ce que je bloque ainsi que des prises non locales. Et nous allons écrire un programme et l'exécuter afin de mieux les comprendre. Dans la prochaine conférence, nous allons voir comment atteindre la communication de socket de serveur multi-client. Donc personne n'a forcé d'être malade approche en utilisant le fil. Alors que je dis que tout le monde a dit un morceau en utilisant ça. Et nous les verrons un par un. Qu' y a-t-il pour éviter ces approches de personnes défavorisées afin de parvenir à une communication de socket de serveur de déclin. Donc ici, je l'ai divisé l'interdépendance et des conférences afin de comprendre comment atteindre ma communication de socket de serveur refusée. Il y a donc deux approches. Donc, dans cette conférence, nous serons vus par la première approche, c'est-à-dire en utilisant la fonction select. Et nous verrons quelle est la fonction select et comment vous l'utilisez, ce que tous les humains sont nécessaires. De cette manière, vous verrez comment il apporte ma communication de socket déclins. Donc, cette conférence est dédiée à cela. Ensuite, nous allons écrire le programme dans la prochaine conférence, le programme en utilisant la fonction select. Donc, ici, dans cette conférence, nous allons comprendre ce qui est fonction de sélection, comment vous l'utilisez. Dans la deuxième conférence, nous écrivons un programme et en utilisant la fonction select sur le système d'exploitation Linux. Conférence dix. La réussite diminue la communication du serveur en utilisant la deuxième approche. Donc, même cette deuxième approche est en faisant le socket n'est pas bloquant. Donc, nous allons voir comment faire socket est non bloquant. Qu' est-ce que toutes les fonctions sont utilisées et ce que sont les humains sont nécessaires. Donc, avec cette information dans la conférence, alors nous allons aller plus loin ou la conférence lemma qu'un nouveau écrire les programmes et sera l'exécuter en utilisant la deuxième approche en faisant le socket est non-bloquant. De cette manière, nous verrons comment atteindre ma communication de socket de serveur refusée et un système d'exploitation inverse. Ensuite, la toute dernière conférence, nous verrons l'application ou la prise. Dans ces domaines, le serveur socket, client sont utilisés et nous allons le sombrer dans des exemples réels que tous les serveurs socket sont utilisés. Donc toutes ces choses que j'ai mentionnées que nous allons couvrir, et je vous ai fait marcher à travers toutes ces idées dominantes socket, ce que toutes les choses sont nécessaires pour la prise. Donc VI a fait pour la toute première conférence de notre socket école compétition V6 prochaine BOD POD, cette conférence que j'ai mentionné en fait, qui est, donc ce modèle OSI, modèle référence volt net, plus dense, multipliant tous ces les choses que vous couvrirez étape par étape. Alors merci. Merci beaucoup. 4. SocketSession3 Partie 1: Salut, bienvenue à la deuxième session du cours qui est l'architecture IP TCP, qui est également appelé comme tout comme je modèle. Dag est un modèle d'interconnexion de système ouvert, également appelé modèle de référence de réseau. Cela vous donnera la vue d'ensemble du système de mise en réseau, vous expliquant comment ces composants communiqueront les uns avec les autres, comment être transmis de l'expéditeur, récepteur et ce moyen de base, votre socket dézips DM, Donc réseautage. Alors, comprenons ces réseaux et comprenons comment devenir annulé. Ainsi, vous obtiendrez une image globale de la prise et de ses composants internes. Le, Commençons par quitter la BC, ou l'un de ces sujets qui est mentionné dans cette diapositive, qui est, ce qui est modèle OSI et l'importance de celui-ci. Blog diagramme du modèle OSI B. Ensuite, une discussion sur les composants de cette architecture illustre, illustrant la communication de ces composants entre eux. Et enfin, nous verrons un exemple réel pour illustrer ce modèle OSI, pour illustrer comment ces composantes de réseau communiquent entre elles. C' est le modèle OSI, qui est également appelé architecture en couches réseau. C' est aussi l'architecture du PCPIT. Alors commençons par ma mère et comprenons ce système de réseau, comment ces composants communiquent les uns avec les autres. Alors que faites-vous dans la prochaine diapositive ? Qu' est-ce que le modèle OSI ? Donc OSI signifie interconnexion de système ouvert, qui est également parti réseau avec modèle de référence. Donc, cet OSI, il vous donnera la vue d'ensemble de l'ensemble du système de mise en réseau. Il est donc essentiel de simplifier le concept de réseau en petits composants réseau et de décrire comment ces composants réseau communiqueront entre eux. Donc, cela lui est très utile. Ou les techniques réseau Jian Wu résolvent le problème de mise en réseau car cela simplifie ce négatif lorsqu'ils espèrent que les systèmes et font de petits composants. Vous expliquer comment l'art de communiquer les uns avec les autres. Ainsi, quel que soit votre problème, que vous puissiez résoudre quelle couche ce problème se produit et que vous puissiez quitter. C' est ainsi que cela le simplifie. C' est donc ce que j'ai décrit dans cette diapositive. L' autre point est que ce que j'ai mentionné plus tôt ne vous fournit que la vue d'ensemble du système de réseau, mais simplifie également le problème du technicien réseau. Qui n'est-il pas troublant problème se référant dans ce modèle OSI, il se compose de sept couches. C' est les sept composants comme voir quels composants sont présents. Bien que très haut composant abelian, qui est présent dans ce modèle OSI est la couche d'application. Donc ce détail que je vous ai décrit, ne vous inquiétez pas, je vais vous expliquer. Quelle est l'application près de ce qui est présent, tous ces nœuds un par un. Et nous allons voir aussi quel protocole et quel état de balles tous ces Leos utilisent. Et plus tard, nous verrons également comment la vue du modèle OSI en la synchronise avec l'exemple pratique. Je vais vous expliquer l'exemple du monde réel. Et je vais vous expliquer comment ces Léo transportent les données de l'expéditeur au destinataire. En fait, des exemples de compréhension humaine. Alors voyons. 5. Socket Session3 Part2 de l'architecture des couches de réseau TCP OSI: Il s'agit d'une couche d'application qui est la plus haute. Leo est alors la couche de présentation, Session, Transport Layer, Network LEO, couche de liaison de données et la couche physique. Donc toutes ces choses que j'ai décrites ici avec les exemples en fait, mais voyons un par un. Vous pouvez passer par elle plus tard et si digraph, C'est l'architecture. Alors commençons par ça plus tôt. C' est un accord d'application. Alors, qu'est-ce que cette application ? Donc, il fournit l'interface utilisateur. Donc simplement parler uniformément de l'application, vous pouvez comprendre l'application est celle qui vous aidera. Étape 1, l'utilisateur arbitraire interagira avec. Donc, il vous fournira l'interface utilisateur. Donc, quelle que soit l'action que vous tombez, tombez sur l'application qui sera reflétée, alors il atteindra le Leo le plus bas de Leo. Donc, vous utilisez un besoin de faire une action afin d'obtenir la réponse appropriée. Donc, cette action qui est faite, se fait sur le composant d'application qui est présent. Et c'est, qui est ce à propos de l'application Leo exemples ou FTP ? Non, FTP est utilisé pour planifier si phi. Donc dix net aussi, vous savez, nous devons connecter des applications de messagerie ou d'autres applications. L'ordre est défini. Ensuite, la couche suivante, qui vient comme une présentation, DO SO qu'est-ce que cette présentation Leo ? Donc, dans cette présentation, Leo, tout ce que je suis mouvement ou conversion de données est nécessaire dans cette application aura lieu sur la présentation Leo. Donc simplement décider décrit ici aussi. Il est utilisé pour le format des données. Ainsi, vous pouvez compresser ou décompresser, chiffrer et déchiffrer. Mais Gita, puisque la déconvolution de l'étude est nécessaire, par conséquent, il est sous forme d'administration sous Deepa viendra 50 entreprises et groupe paralympique. Donc, quel que soit le formatage des données aura lieu. Quelle application lors de la prise de cette présentation, Neil et l'autre cryptage de données a lieu, ainsi que la secte de caractères et n'était pas explicite. Donc exemple aussi là. Donc JPEG, PNG. Donc vous savez, ce sont les hormones aussi leur format fixe. Donc, ce sont différents, de type différent ancien format. Ainsi, vous pouvez comprendre cet exemple lui-même là cryptage des données a lieu des données et voyage et a lieu dans le cas de JPEG PNG. Oui, ce sont des formats différents. Donc, quand nous parlons du format de données et cette couche de présentation entre dans un pistolet. Alors ne vous inquiétez pas, je vais vous expliquer l'exemple du monde réel après avoir expliqué ces couches. Et vous pouvez synchroniser avec toutes ces nouvelles. C' est la présentation, l'application dans l'huile et cette manière même comprendre ce qui est vraiment alors ce qui est la session NEA, couche de session, il va écrire le nom lui-même, dit que c'est la connexion que vous pouvez comprendre. Donc, il ouvre et ferme la session avec les bouches de l'entreprise, donc il est responsable, mais l'ouverture de la session pour contrôler la session, exclut la session que post-doc distant est fait dans la machine de guerre. Et donc cette session, l'OED en fait, donc cette session, laquelle des blocages que plus, qui sait que c'est une connexion que Richard développe avec la connexion virtuelle à distance. Donc il a été massacré par le nom lui-même. Vous pouvez comprendre que ce n'est pas une connexion réelle réellement besoin d'une connexion virtuelle. Cela est établi, ainsi également décrit comme une connexion de transport moins ou sans aucune communication réseau. Ainsi, vous pouvez comprendre qu'un ancien existe, mais sans aucune communication réseau. Donc donc le nom regarder connexion, puis l'exemple de la couche de session sont donnés, vous a expliqué en fait, qui est, qui va illustrer utiliser toute l'application de messagerie. Donc, dans le rôle d'application humaine, nous devons envoyer n'importe quel hôte distant drôle de Bouddha. On doit transférer le Pine à l'hôte distant. Donc, ce qui se passe à, bien que assez pré-établi, il y avait mais un projet de loi CBO envoyer les données à la sangha de dire l'information sur la quantité de données sont reçues maintenant. C' est donc un petit intervalle chaque fois que le fichier est transporté. Dans le cas de l'e-mail envoyé à l'hôte distant, ce client indique à l'expéditeur combien les données sont transportées. Maintenant. Donc, cela arrive à petits, petits et gouvernements et 3h assemblage et double supposer entre les deux ou connexion de l' aiguille se perd de là bas. Pour que nous n'ayons pas discuté ci-dessus ou au-dessous de cette couche de session qui est une marque, c'est-à-dire une couche de transport. Donc dénoter que nous avons discuté présentation de l'application et des séances de discussion nomiales. Donc en dessous de la procession près de cette couche de transport. Donc, si la connexion de la couche DOM, c' est-à-dire la couche de transport, elle est perdue, alors que se passe-t-il dans ce cas ? Dans ce cas, la connexion du gardien sera existante. Donc ce que vous allez connexion ne sera pas perdu. Et un onduleur, cette session, l'audit reçoit une nouvelle connexion de transport, puis l'envoi des données. Encore une fois, le CV supplémentaire de Reddit a été arrêté plus tôt. Donc, je l'ai mentionné, il a également essentiellement la séance de contrôle d'ouverture et de clôture. Il est fait par la couche de transport qui est vers le bas jusqu'à cette session. Vous pouvez comprendre ce qui est la session près de la colonne vertébrale doit être corrigée orthographe. Maintenant. Ensuite, quand nous parlons de rotation Euler via donc maintenant parler de l'Activity Download, pensant avec la session, nous puisons également sur ce qui est la couche de transport. Couche de transport. Il transférera les données par le nom lui-même. Vous pouvez comprendre, et il a un intégré, bleu-blanc, toute connexion entre l'hôte. Ainsi, il va transférer les données et fournit une connexion de bout en bout entre l'hôte. Donc, cette couche de transport, en fait, vous pouvez voir la connexion entre les tablettes entre l'hôte peut être fiable, c'est une action ou peut être peu fiable. Ils déconnectent cette âme. J' espère que par ce fiable et peu fiable, vous pourriez comprendre que nous avons vu dans les rapports de recherche sur TCP et UDP, rencontré et B ont vu PCP fiable. Européens, non-noir n'est pas fiable. Et nous avons également vu que TCP est fiable parce qu'il l'est, il assurera effectivement toutes les données sont. Pour le récepteur correctement dans l'ordre correct que ooh, si un bouton je peux déloger, centre notifiera au récepteur et à nouveau les données peuvent être transmises. Donc, les prédictions de l'éditeur ont également fourni qu'il est niveau de poids lourd parce que tous les murs en bois dans la tâche une correction d'erreur pour l'envoi des données si le paquet est perdu et il développe une connexion. Donc, toutes ces choses se produisent en cas de pâte TCP est une connexion fiable. Nous avons vu une connexion peu fiable. Autrement dit, c'est UDP n'avait aucune erreur, correction sera interdite. Et ce n'est pas o, il est préférable à bord que même si un paquet est bruyant, ne pas envoyer de données et ne pas notifier une fois que vous faites cela, un CBO. Donc, ici, il est très léger. Donc, tous ces points que nous avons discuté, toute cette couche de transport avec l'aide de leurs familles parce sont liés les uns aux autres. Vous pouvez voir quand j'ai parlé de la session approché, j'étais ici était ce qui marchait avec ce DOM près de la couche de transport. Ok. Alors maintenant, parce qu'ils communiquent les uns avec les autres, nommez parler de transport ici. Personne qui a inventé sa pension ce réseau Hale-Bopp ici. Donc, c'est encore là w. donc cette couche de transport avec l'aide de ce magnétiquement commandé sa propre adresse IP, et il construit des données de Sander. Donc, bien que le widget de données reçoit la couche de transport de vigilance, il reçoit de la couche de session en fait il, avec l'aide du téléchargement que les données, il abordera les données. Et donc l'exemple que je vous ai dit est la connexion de données TCP 1 et UDP est sans connexion. Donc, la couche suivante qui est présente est la couche réseau, qui est la couche descendante à travers le transport ici. Alors, qu'est-ce que ce réseau Leo ? C' est ce sont les routes qui rampent signifie donner leur direction. Donc oui, DO paquets de données sur les détails Transport épuisé signifie donner la direction à ce paquet vers quel chemin il devrait voyager, ce paquet devrait voyager, donc il sera arrondi. Les jeux de données donneront leur direction, donneront le paquet RP à partir d'un chemin, il devrait voyager le long descendant à la politique, mais que cette route, donc il le fera, il sera à nouveau réassembler les paquets de données parce qu'il envoie un paquet des données, quelques paquets de données de l'expéditeur au destinataire, site CBO, il va se réassembler, il va collecter toutes les données ensemble. Donc, il s'agit de la vue réseau. Donc, le but principal de cette démo nucléaire est également abordé les paquets. Donc il avait été fourni leur adresse au paquet, n'est-ce pas ? Que ce paquet comprendra réellement à travers quel chemin il devrait parcourir. Et à travers Internet, les ponts locaux et oncle et exemple est IB. Donc j'ai aussi compris cela. Donc, il va rouler est en fait de donner une direction au paquet qui rampe, nom remonter le paquet des données. Et son but principal est de donner l'adresse au paquet afin que le paquet comprenne qui il doit passer. Internet, ponts locaux et auto exemple est IP. Donc, la couche suivante est là couche de liaison de données. Alors, qu'est-ce que la couche de liaison de données ? Il le fait en fait, donc c'est aussi la couche de pilote suivante en utilisant. Parce que par le Dr Willard parce qu'il va aussi négliger l'art est un hydrostatique. Ceci est le principal guide de réseau qui à travers lequel vous avez atteint l'Internet. Donc, c'est notre appareil à travers lequel vous atteignez et collectez. Donc c'est ça, notre Leon n'est pas un appareil, une rivalité dans le désert est une tribale de réseau et parce qu'il contrôlera la carte réseau, ok ? Maintenant, cette couche de liaison de données, j'ai besoin de la demande compétitive comme deux ou plus négativité ou utilise l'âme, car il contrôlera la carte réseau qui aurait été une connexion aigle et soda. Donc, ils ne sont jamais cette ou plus couche de réseau neuronal qui utilise le même réseau répondre à votre plus ancien présent non-equity en haut de ceci, dont nous avons discuté maintenant. Alors faites un mot, réseau. Il utilisera la même carte réseau. Alors comment cette gestion quand pour la Maison Blanche a accès à la garde du réseau sera que c'est seulement mon cou et ma carte réseau. Mais comment cet excédent d'argent fourni pour la couche de réseau qui est présent et l'Egypte et tirant cette couche de liaison de données. Et donc il, je ne fais pas aussi l'adressage physique du réseau et l'action a lieu. Il se compose également Octobre loi sur le désordre aura décrit de sorte que vous devriez être connaître chacun et tout sur le PDG. Il s'agit donc de quelle topologie il y a topologie Internet. Et il est également utilisé, il utilise également sont le périphérique réseau le plus couramment utilisé, qui est si utilise commutateur. Il s'agit donc de la couche de liaison de données. Aussi l'Italien a-t-il clair qu'il se compose de deux sublimes, n'est-ce pas ? Si largement otite, contrôle d'accès aux médias, qui est mac sous-couches de ce que fait cette Amaterasu, Il est responsable de l'interaction de l'appareil. J' ai mentionné la détection de votre appareil de mise en réseau. Et la seconde est W à laquelle fait Dayton dans le Kansas, est lien logique Leah, tout à coup. Donc, cette couche de lien logique, il fournit le multiplexage et l'adressage à ce sujet. Bien que nous soyons multiplexage signifie quoi ? Ça veut dire. Il sera, sont maintenant, pourrait approfondir et marcher à travers approprié pourquoi les gens existent à différents réseaux multi-points. Et il peut également être transféré, transporté, ou si le même support de réseau. C' est quoi le multiplexage ? Donc, un exemple de cette couche de liaison de données, si vous voyez sera la source de masse et l'adresse de destination, ainsi que la flamme éternelle. Ne vous inquiétez pas pour tout ça. Écrivain technique, poète gribouille clairement. J' espère que vous avez compris, il suffit de le comprendre. En passant par la partie réseau, il est utilisé pour rencontrer un ange connexions quand je suis quand les gens connexions de la couche réseau en utilisant la même carte réseau, il va gérer cette connexion et il magasin fantaisie deux choses présentes dans nos débiteurs, MAC et LLC. Magazine de contrôle de lien logique d'un bal est divisionnaire que l'action et cela fournira multiplexage et l'adressage. Donc leurs détails à ce sujet, Je vais vous expliquer impliquer exemple du monde réel, que j'ai beaucoup de public, ces leaders, J'ai couvert l'exemple du monde réel et je suis expliqué détenteurs, ces Leo, la synchronisation en fait ce qu'ils vont faire quand je suis dans ce monde réel exemples. Donc, vous comprendrez exactement ce que ces Leos sont mobiles. Maintenant, la dernière couche est l'allèle. Donc, cette couche physique, il est également appelé comme s'il s'agissait d'un réseau. Aussi ne signifie pas que Hyderabad apporte réellement le réseau qui sont différentes formes de entendu parler de lui. Il peut aussi s'agir des câbles réseau qu'il n'avait pas entendus et tout ça. Donc, tous ces concepts que physique. Oui. Alors merci. Merci beaucoup. 6. SocketSession3 Partie 3 Partie3: Bonjour, bienvenue à cette deuxième session, deuxième partie pour ce modèle OSI qui est l'architecture IP TCP. Donc, en fait, dans la même session, j'ai discuté des sept Leo's, qui apporte le système de réseautage. Alors, comment ces composants, quels sont ces couches sont responsables ? Et comment ils communiquent les uns avec les autres. Donc, dans cette conférence, je vais vous expliquer que lui et Dieu l'exemple. Et je vais vous expliquer comment ces sept vidéo de Network Leo rouler les exemples de voiliers afin que vous preniez une photo comment ces composants réseau Leo un jour j'ai eu et comment ils communiquent les uns avec les autres. Alors voyons ça. Donc, ici, nous allons étudier les exemples entrants comme celui-ci. Je simule une seule commande alimentaire. Donc oui, le client ne fera pas à travers leur réseau et passer une commande avec une introduction en bourse. Ensuite, nous considérerons que les clients de chiens appelant fait à la fois sur leur déformé et passer une commande et cette personne sait, trompe leurre et le client a communiqué avec les détails de commande ce que le client veut. Et le livreur va alors aller à l'adresse sur un stimulant et va livrer de la nourriture. Ce sera donc de voir comment ces Lion jouent alors un rôle en eux. Alors voyons un par un. Donc application de pâtes, Leo. Donc Vannevar stellate est de soumettre un formulaire pour la stomie de silice interagit avec la corne effectivement communiquer dans les détails de l'ordre. Donc oui, l'application pour que vous sachiez, quelle est la couche d'application chaque fois que c'est une indirection, elle permet l'interaction de l'utilisateur, en fonction de cette action, elle répondra. Donc, l'action est que le client fait un appel téléphonique en utilisant le téléphone pour s'il vous plaît commander. Donc, c'est, ceci, la couche d'application prend en compte et le protocole qui lui est associé sont HTTP ou HTTPS, alors que FTP, comme je l'ai dit, est vide. Donc, tous ce sont les protocoles qui vient dans cette couche d'application soude, client, en utilisant le téléphone pour passer une demande inopportune de commande. Leon, faisons cette interaction avec le port. Alors vient ensuite la couche de présentation. Alors, quelle est cette présentation que l'IB a étudiée lors de la conférence précédente, qu'est-ce qu'elle fait ? Il fait la forme que je pense, des données. Donc, il fera le cryptage des données. Donc, il a évité le formatage requis pour une application et être fait dans cette couche de présentation. Alors qu'est-ce qu'on a fait ? Blastocoel ou la commande qu'il reçoit de la couche d'application de la police. Et à l'arrière, il déchargera la formule non-réseau de l'événement de costume EVA humain. Alors, qu'est-ce que ça veut dire ? Cela signifie que cette définition signifie qu'elle rend compte dans un format particulier que vous avez dit. Je comprends. Donc, ce format devrait leur être commun. Donc ici de même dans le cas d'exemple aussi chaque fois que l'astéroïde un foo, je vais obtenir des détails de la commande comme supposons que le client voulait commander un peu nought. Il doit donc communiquer à ce restaurant en personne. La langue qu'aucun client n'utilise pour communiquer à ce fardeau doit être une langue commune. Autrement dit, il devrait être universel, il devrait leur être connu. C' est donc une raison pour laquelle il sera converti dans ce format. Il se convertira dans un langage parfait. Parlant. La personne parlera dans cette langue, commune aux deux. Pour que les misères et cette couche de présentation, il est utilisé pour non amarré dans ce format qui est compris par eux afin d'emballer toute communication appropriée. Donc, cette gencives dans cette présentation près du protocole utilisé est le D. Donc, nous savons que les images dans différents formats, la date de retour si Pfam NGI plier à notre HTML différent, qui est la page en fait la page Web, puis le ascii lié à des tiers chaînes. Donc c'est sur les protocoles qui sont utilisés ici en cas de présentation Léo. Maintenant, cette session, que fait la couche de session Cuando postal ? Donc, afin de transférer les données, qui est un paquet réellement faire leur destination, cette couche de session, il devrait ouvrir le contrôle et fermer cette session qui sont là entre les processus d'application de l'utilisateur final sont responsables de l'ouverture, contrôle et empêchant la décision entre les différents processus d'application. Donc Riot est nécessaire session ouverte. Faites l'hôte distant afin d'envoyer des données pour transmettre un paquet, il doit passer session ouverte, faire cet hôte distant. Donc, nous savons cette session près des États-Unis et ce que vous pouvez réellement avoir vu des butanes et des abus à travers cette conférence ou cette session, deuxième session. Donc, si vous cet exemple, Victoria Albert exemple, par les actionnaires, les clients qui font un appel téléphonique et la personne du restaurant devrait recevoir. En fait, écrivez votre récepteur afin que le client puisse communiquer avec ce récepteur. Ce trouble est mort et unique, nouveau envoyer ce commandé. Donc, cette communication est nécessaire pour que recevoir à nouveau, les informations de la commande détaille ce que toute commande le client a fait face. Donc, cela parce que la raison de la session, c'est très nécessaire. L' autre extrémité, c'est-à-dire que les présentateurs déformants ont reçu un appel téléphonique ou pour ce protocole de communication réussi soit utilisé comme RPC, vous savez, RBC. Nous avons, chaque fois que nous devons venir communiquer à travers la machine distante en fait, cela signifie que vous devez développer une session entre la machine distante. Ensuite, ce RPC utilisé SQL également communiquer avec la base de données réellement pour se connecter à leur base de données. Sql est utilisé, Réseau est un et il les prix de travail temp un. Et ce X Windows est utilisé pour communiquer ou si je dois obtenir la machine. Donc, c'est sur la couche de session vient en compte. Maintenant, on parle de la couche de transport. Ainsi, le cluster pendant que la couche de transport est de transformer les données entre de bout en bout. Peut-il faire ressortir la promesse de connexion de bout en bout. Était-ce la moyenne aussi ce que cette couche de transport, quand il le fait, il, est-ce qu'il est, il assure non seulement comment les données doivent être transmises, comme si elle doit être sans connexion. Les audits devraient être la connexion ou des données qui est, TCP devrait être donc, un ancien UDP devrait être donc connectionist, paquet latéral inorganique toute sa semelle fournit aucune sécurité de boule de feu et les validations et fournit un titre qui est acquis un, s'il vous plaît. Donc, vous savez, par N1 est utilisé pour sécuriser leurs données. Le paquet suspect qui est. Ce qui est soupçonné à un problème avec un éditeur ne sera pas passé à l'éditeur supérieur. Donc j'ai besoin d'un paquet valide sera passé. Mais support suspect, colis non-clé, il fournit à l'acheteur veut la sécurité. Donc, en décidant comment les données doivent être transmises, connectionisme connectionnel fournit également ces fonctionnalités. Alors. Il a également apporté là, est-ce qu'il fournit un contrôle de la qualité ? Contrôle de la qualité dans le sens. Donc, cela a le paquet Espèce ne sera pas autorisé à passer à travers le feu. Et était le problème représenté de Susan est là dans le paquet. Par conséquent, il vérifie la qualité du paquet n'est pas bon, pas livrer à travers le pare-feu. C' est la raison pour laquelle il fournit ce contrôle de qualité. Maintenant, en pensant avec un vrai conseil, c'est-à-dire, si la nourriture n'est pas bonne en fait, qui est en cours de préparation est que j'ai commencé et il avait été un RB livrer aux clients. Ainsi, cette espèce quatre ne sera pas autorisée à être livrée au client. Penser avec un exemple du monde réel. Donc, comme je vous décrit, cette couche de transport ancestrale deux choses, deux types, statistique, Cp. Ici, il décidera de la manière dont les données seront transmises. Il aura une action, il est orienté connexion. Il sera également fiable que parce que si quelqu'un meurt lois alors il sera notifié au destinataire aussi à nouveau, il sera transmis éditer cette section se produira également. Et c'est ainsi que Holzer mérite un appât lourd parce qu'il effectue toutes ces activités. Alors exemple ou PCB, HTTP, FTP, SMTP, rencontré comme dans le cas de UDP, est orienté sans connexion, nous avons vu qu'il n'est pas fiable en raison de certains paquets sont perdus et il ne sera pas notifié au récepteur. Encore une fois, il ne sera pas envoyer réinitialiser. Et cela ne dérange pas qu'il n'a pas été dirigé. C' est donc une raison pour laquelle il n'est pas fiable. Et l'exemple de vie de ce UDP est couché verticalement ou de jeu. Donc, c'est une notation qui est multi-joueur. Donc oui, il n'envoie pas les paquets qui sont perdus parce que ce sera notre perturbation. Dans cette communication. Encore une fois, DWB, Sénat de la BM sera pris un jour. C' est donc une raison ou pas. Il est terminé et donc il devrait être utilisé dans la communication en direct. C' est donc ce qui se passe dans le cas d'UDP. C' est donc un exemple vivant. Maintenant en parlant d'eux, Léo. Donc, qu'est-ce que cette couche de réseau que nous avons vu d'abord a pris une couche de réseau. Nous avons vu dans la conférence précédente, fournit routage des paquets. Autrement dit, il décidera dans quelle direction le paquet devrait aller, ooh, quel chemin il devrait suivre. Et puis nous avons vu, et nous avons aussi vu qu'il est responsable du cadrage et de l'assemblage des paquets. Donc, ce que le cou pluriannuel fournit, il fournit le meilleur chemin pour acheminer les paquets. Donc meilleure partie signifie qu'il fournit de ce qui devrait être le meilleur chemin pour le graphique à barres de niveau groupe, chemin court. Avant effectivement pour que le paquet soit envoyé de l'expéditeur au destinataire. Et quelle partie est à utiliser, ce qui est un OK valide, donc à ce point à cette bobine est une route s-bar les paquets. Alors, qu'est-ce qui est fait ? Le routage est terminé. Donner leur détection au paquet va marcher audit approprié, et la fragmentation est faite et le réassemblage ou le paquet explicite. Nous allons discuter de toutes ces choses sont Fido. Alors maintenant sombrer avec l'exemple ici, si nous voyons ici, sorte que le livreur qui va livrer la nourriture au client. Il utilise GPS, Google Map de retour de cette façon. Responsable d'apporter les chemins les plus courts visibles achetés. Alors, qui meilleure carte pour les blancs sont très court, point le plus court. Et c'est ainsi qu'il se synchronise avec le monde réel, ce réseau, vrai Leo, BEC, et chanter avec cette couture. Maintenant sont les trois étapes dont j'ai vu quoi, ce que tout cela arrondit réassemblage de fragmentation. Donc, il décrit ici indiquer des messages d'adressage si logiques. Donc oui, ce sont les adresses virtuelles. Alors que ce sera une adresse virtuelle qui décidera comment le paquet acheté destination serait là. Je sais que j'ai fini ou tu envoies un paquet ? Ce paquet va passer par le réseau. Nous allons donc être entre les réseaux. Ce sont donc les adresses de surveillance, c' est-à-dire l'adressage logique qui prendra le paquet pour acheminer à travers le réseau pour atteindre cette destination. Donc oui, IPV4 impair protocole IPV6 est utilisé, donc utilise simplement ses autres adresses virtuelles, qui décidera quelle destination sera là pour que le paquet achemine que vous ne liriez pas aujourd'hui et nous allons utiliser ce protocole. Et donc je peux traiter la deuxième étape dans cette encapsulation de données Viterbi ou notre verbale encapsuler ces données avec leur, avec la source et les destinations. Il y aura donc des adresses associées à cette source de données et à cette destination parce que, comme je vous l'ai dit, elle est utilisée pour acheminer. Il donnera le chemin a été de nommer quelles parties doivent être rapportées. Et il verra aussi qu'il aura une adresse source et destination aussi, sorte que les données seront atteintes à travers ses pensées finales, source et destination. Il coulera avec elle. Et puis après segmentation ressemblant ainsi ici, stade endocrinien de l'entité. Ce sera tout d'abord, des points de données isolés, puis il sera assemblé, puis nous devons l'assembler. Donc empathie beaucoup de cran. Il peut donc arriver que le jour relie toutes ces données agréables dans des endroits non contigus dans la mémoire. Alors quoi, qu'est-ce qu'on a fait ? Il sera fragmenté. Il recueillera toutes ces données à partir de l'électrode de localisation d'un ordinateur. Et il recueillera de taille Jiang vu quelle taille il devrait être motif pour. En fonction de cela, il recueillera les données qui sont présentes dans différents emplacements de mémoire, puis les données seront transmises. Il s'agit donc de fragmentation. Et le protocole qui est utilisé ici est cependant, qui sont maintenant en cours de protocole d'information parce que pourtant pompage est fait dans la neige dans cette couche de réseau ainsi que Open Shortest Path First, parce qu'il propose ce chemin le plus court, ce protocole est utilisé ici. Maintenant, je vais télécharger leur SDK et inclure. Donc, c'est ce que fait ces données en Angleterre, comme nous l'avons vu, il est aussi goitres sur le réseau. Il est utilisé pour contrôler la carte réseau. Il est utilisé pour gérer la connexion d'humeur Mordor. C' est à partir de la couche supérieure et c'est la couche de transport. C' est l'un des négatifs localement ou d'utiliser le même réseau, alors il va gérer que vous avez vu dans la conférence précédente. Donc, ce que cette couche de liaison de données fait, il assure que les données seront transmises sans aucun éditeur. Il fera cette partie. Et aussi nous avons vu, est-ce que les réponses claires italiennes parlent à quelqu'un qui a nous avons vu avancées parler logiquement contrôle et aussi le contrôle de l'accès aux médias. Nous avons vu l'unité et le contrôle logique que nous avons vu dans la conférence précédente qui est utilisé pour le multiplexage et l'adressage et les médias qui sont marqués comme utilisés pour l'hydroélectricité. Il fournit des conseils et des orientations. Donc ces deux couches, ce que David faire, Sebelius, qu'ils fourniront également le succès pour la transmission des données. Donc toutes ces choses y sont associées. Donc il avait été, avoir cette li et nous aurons l'adresse physique Mac, qui définira l'adresse de destination où les paquets trois. Alors qu'est-ce que le système endocrinien, l'adresse MAC. Nous avons vu cet aimant est une action physique, adresse physique, qui aidera cette personne qui atteint la destination. C' est donc très important. Ainsi, l'exemple de segment UDP est leur destination, adresse physique ou la personne de livraison client. Sachant que je afin d'aider l'estimation de la nourriture. Donc, il a dit de chercher la destination physique, l'adresse physique du client. Donc maintenant, le protocole utilisé ici est Ethernet et le protocole point à point. Ils vont maintenant à la toute dernière couche, qui est la couche physique de 70 ont vu carte réseau ou les câbles de métro. Tous ces éléments relèvent de cette couche physique parce qu'il est lié à la partie réseau matériel de celui-ci. Ce sont donc les composants. Donc obèse, le client qui nourrit la comédie, comédie passerait la commande. Et il a dit, Nous allons envisager de devenir un autre physiquement sur la lecture du client, dont l'un. Donc, cela vient sur métaphysiquement d'accord à travers ce cours. J' ai été faible si vous partagez vos commentaires et évaluations car cela signifie beaucoup pour moi. Et quand m'a influencé à publier autant de vidéos à la demande selon vos besoins. J' en ai fini pour cette conférence. Merci, merci beaucoup. Dans la prochaine conférence, nous allons voir des méthodes de fusée de fenêtres et assez de méthode de socket pour apporter la communication de la socket. Merci mes amis. 7. Socket Session4 Session4 Windows Part1: Salut, bienvenue à cette nouvelle session, qui est des méthodes client de serveur socket pour être les deux. Donc, dans cette session, étant donné BC, les sujets ci-dessous qu'il doit, d'autres sujets que je l'avais mentionné, nous allons examiner la configuration environnementale à ce Janvier pour les deux dit sur M socket client. Donc, c'est le même bâtiment Goleman Waterman Center requis pour le serveur ainsi que pour le socket client. Ensuite, nous verrons le sujet adoptif qui est, la médiane serait discuter des efforts de Garmin sont les API que le serveur de cohorte Janvier et le client. Il y a donc trois méthodes qui doivent être retardées de l'API uniquement pour le matériel ainsi que pour le client pour le système d'exploitation Windows. Donc, nous allons voir est trois méthodes. Vous verrez quel est le but de ces trois méthodes et comment elles sont utilisées va couler dans l'accord. Donc, cette session est très nécessaire avant le processus de programmation socket, mais incliné pour Windows, système d'exploitation Windows sur IDE. Donc, avant d'exécuter le code, avant d'exécuter le code, nous allons comprendre les mappers, les fonctions qui sont présentes, et les contours socket afin que vous ayez une meilleure idée de ce que nous font et cela vous fera comprendre facilement. Ce sont donc les méthodes qui discutent vivement. Ce sont les méthodes courantes requises pour le serveur et le client. Pour Stephen, regardez ces trois méthodes, alors nous verrons ensuite. Les méthodes de socket décimales sont des API qui seront spécifiques uniquement au serveur. Donc, les méthodes setter qui seront spécifiques au serveur qui sera vu couler avec le code. Et puis nous verrons les méthodes de socket client qui peuvent être spécifiques à décliner. Encore une fois, en pensant avec le but. C' est donc ce que nous allons étudier ici. Il est donc très nécessaire pour commencer la programmation pour le règlement et la lumière. Donc, vous devriez savoir ce que toutes les fonctions sont utilisées, quel est le but de ces fonctions ? Donc, cela vous fera comprendre d'une manière. Alors commençons. Ici pour nous, vous discuterez de l'arabe découvert dans le sujet mot bien sûr, sujet que nous allons discuter dans la configuration de Berlin Waterman. Donc, avant d'écrire le code et d'exécuter la programmation socket de la fenêtre du solveur, ce sont les petites étapes. Donc, avant d'écrire le code pour votre socket, ladite ligne de look, c'est la méthode générique de construction installation ordinale nécessaire pour sept vols de bois. Donc, tout d'abord, puisque nous allons écrire le programme et exécuter sur IDE, ce bloc de discorde. Jusqu' à présent, nous devons créer un projet, mais un bloc d'accords. Donc, ce cas sur le système d'exploitation Windows, nous devons faire le secteur de cette manière. Nous devons ajouter cela. Nous devons les lier dans une bonne bibliothèque de socket afin que nous puissions utiliser les fonctions ou les méthodes qui sont présentes dans cette bibliothèque de conflit Mendoza. Depuis ceux-ci, ceux-ci utiliseront lorsque socket 32 fonctions de bibliothèque. Donc, avant de commencer à écrire le programme, qui appellera les méthodes comme le sont les fonctions qui sont définies. Dans la bibliothèque qui, c'est appelé comme w que nous avons tiré cette bibliothèque, si vous ne liez pas cette bibliothèque, une fois que vous compilez le code, il compilera car il y arrivera. Mais, et vous exécutez le code parce que vous savez que lors de l'exécution du code, il sera lié à cela. Je suis très bien. Donc, dans ce cas, ce sera finalement la bibliothèque. Et puisque vous n'avez pas lié à la bibliothèque dans le secteur moderne, alors vous allez lier des lettres. Ne vous inquiétez pas pour ça. Nous verrons également comment il ne sera que lors de la prochaine session lorsque nous commencerons, je pense que le programme, donc c'est pour votre compréhension. J' ai également mentionné dans la présentation elle-même que ce que toutes les choses sont faites étape par étape afin que vous puissiez y vivre et réutiliser une vidéo. Et nous pouvons renvoyer cette présentation ici même. Donc, tout d'abord, nous devons créer un projet vide et non un bloc de bois. Ensuite, comme il va écrire le programme pour le C plus, alors nous allons ajouter un MPC plus le fichier source au projet. Donc, je vais également vous montrer dans la prochaine session et nous écrivons le programme dans le bloc de pores lui-même. Comment faire juste ce sont les étapes qui sont faites de moi non, non vers le bas. Et nous devons nous assurer intégré dans l'eau, puis des liens vers eux et Socket Library, qui est Ws pour souligner particulièrement de courte durée. Donc, ce sont les étapes pour lier que j'ai aussi mentionné ici. Donc, nous devons aller au projet, nous devons aller à l'option du milieu, puis cliquez sur les paramètres de pourcentage de lien de sorte que notre lien de liens va, je pense, de sorte que vous pouvez lier n'importe quelle bibliothèque à elle et ajouter ce qui suit et les options de l'éditeur de liens. Donc, toutes ces étapes sont les étapes pour ajouter Susan me ou utiliser vraiment être en utilisant l' écriture du programme pour le socket pour le système d'exploitation Windows pour la ligne de crochet cellulaire. Puisque nous allons utiliser les méthodes ainsi que les champignons sont les fonctions qui sont définies dans ce fichier de bibliothèque, c'est-à-dire, celui-ci, Ws à 32 points. Cette bibliothèque contient toutes les fonctions de la méthode d'objet Windows définies. Nous devons donc établir un lien de cette manière. Vous allez lier, peut-être donner ces deux lignes qui est moins W en particulier et celle-ci. Donc, cela est très important, sera également voir dans la prochaine session comment réaliser, comment effectuer ces pertes étape par étape afin de lier ces bibliothèques. Puisque cette bibliothèque elle-même contiendra toutes les méthodes ou fonctions qui seront utilisées pour les exécuter dans cette programmation de socket. Donc, c'est le débat des hommes du Nord ne mettent pas en place ce qui est nécessaire pour écrire un programme client sur le système d'exploitation Windows. Ensuite, j'ai mentionné très important si vous n'utilisez pas de bibliothèques et vous arrivez vraiment à éviter cela. Vous devez faire ce milliard plus d'une série de lettres en tuant ce fichier de bibliothèque. Ensuite, vous pouvez commencer la programmation l'application mini socket pour le système d'exploitation Windows par ce fichier d'en-tête mentionnant. Donc, vous devez les mentionner dans le fichier d'en-tête socket DO2 qui vous expliquent également dans la prochaine session ce que tous les fils Arctic d'entreprise que vous avez à gérer. Vous devriez inclure en fait pour que vous puissiez connaître les fonctions d'or. Et quand ces prises. Donc ceux-ci, donc via, via l'identité dissoute densité Waterman pour Windows pour la programmation du serveur socket. Voyons maintenant un autre sujet de cette session. Donc, ici, nous allons discuter des méthodes communes qui peuvent être utilisées à la fois pour le règlement de socket ainsi que pour le client suivant ceux-ci. C' est donc spécifique à une partie spécifique du système d'exploitation Windows. Cette fonction particulière est utilisée qui est commune pour le serveur ainsi que pour le client, c'est-à-dire Ws tech startup. Et il a deux arguments. Donc, vous pouvez voir cet argument forcé comme donné dans cet homme. Et la seconde, je suis humain ne s'adresse pas à ces dirigeants WSDL. Foster boyd, Quel est le but de cette fonction de démarrage WSS ? Et il est nécessaire que nous devons, vous devez utiliser cette fonction dans Bork dit, client de Venise, censé bouillir par ce qui est le but de ce OWN une start-up. Il est utilisé pour initialiser la bibliothèque. Donc, puisque nous avons vu que la bibliothèque mentale KC qui se faufile dans la configuration de Berlin Waterman. Donc, pour initialiser la bibliothèque, cette fonction est utilisée. Donc, ce que cette fonction fera, ouest nommé aux postes, registre des arguments, présente sensible, et les initialise dans la bibliothèque soc. Donc, le coût du programme va vraiment nous aider tous Lindbergh a écrit un à utiliser, qui était cette socket hybride même qui peut être mentionné par ce post arguments. Donc, cela fonctionne et ce groupe est, comme vous pouvez le voir, Denon enregistrer deux virgule 0 spécifie que le programme voulait utiliser une version 2. Bien que la bibliothèque il y a nous avons vu, donc si nous avons donné une version différente en fait, donc cela va définir leur dévotion programme réellement budgétisé vous aimez seulement donc j'ai mentionné ici lui-même le FED ME DO, qui était de Vin socket, le programme un. Oups. Donc, voici le principal, que signifie DO virgule 0 ? Il voulait utiliser le programme de toilette 2.0. soda quand utiliser une version 2.0. ou cela signifie Socket Library censé appliquer cette fonction est utilisé pour initialiser la bibliothèque qui a signifié Socket Library. Et l'argument post dira que le programme veut utiliser, qui était l'un d'eux et socket. Et qu'est-ce que ce deuxième argument dit sur le forcé sur ce deuxième argument qui est qu'il est l'adresse des données WSB. Qu' est-ce que cette structure de données WSB ? Donc structure 1D, comme je l'avais mentionné ici. Supposons que vous mettez une deuxième meilleure prairie nomme DO connaître la structure de données WSSE. Donc, cette structure dans laquelle la responsabilité même dire le programme construit sur annuler le programme sur les informations critiques que la bibliothèque, même Socket Library. Mais là. Programme qui indique combien de sockets sont nécessaires à créer. C' est donc une information critique que la bibliothèque passera à travers le programme en voyant ce que sont, combien de sockets, nombre de sockets que vous pouvez créer. Donc, cette structure sera remplie en fait avant. Donc, la structure sera quittée avant de revenir de cette fonction. J' espère que vous avez compris le but. Il est utilisé pour les initialiser dans les bibliothèques soc. Donc oui, nous devons mentionner l'avortement que vous voulez pendant qu'ils ont été la bibliothèque de socket. Et cela fournira, cela communiquera les informations, informations critiques de la bibliothèque lorsque la bibliothèque de socket au programme, voyant combien de sockets sont nécessaires. Donc, c'est ce que la fonction est requise et ceci est spécifié sur les fenêtres de besoin de savoir ce qu'un système d'exploitation Windows sur cette fonction est nécessaire. Vous devez utiliser cette fonction pour une carte ou un serveur, ainsi que ce qui attend le système d'exploitation Linux. Je mentionnerai également ce que d'autres choses peuvent être utilisées pour Windows et Linux afin que vous puissiez commencer la programmation avec Linux aussi. Donc aussi une averse vous, puisque cette session vous explique ce que toutes les fonctions sont présentes plus la configuration admin est nécessaire pour effectuer la programmation socket. Une sorte de fenêtres d'eau alcalines fonctionnant. Aussi. Pour le système d'exploitation Linux. Presque sembler des fonctions que vous pouvez utiliser. Vous n'avez pas besoin du système d'exploitation Debian Linux, des environnements construits, ou nous avons simplement besoin d'installer le compilateur GCC et il peut être déjà stocké dans votre système d'exploitation Linux. Vous n'avez pas besoin de lier ces bibliothèques. Aussi, nous avons vu dans Windows et le système que nous avons besoin de relier toutes ces bibliothèques, Albia delink, seulement cette bibliothèque qui est Louis Zoo, et une bibliothèque de socket décibable quart D2 sans fin. Puisque nous devons appeler les fonctions de cette bibliothèque. Et donc cette fonction est définie. Vous ne devriez pas obtenir démêler Arezzo avoir à lier cette bibliothèque, mais dans le cas de la feuille Feistel de Lena et cette bibliothèque. Donc, en cas de d, dortoir de l'industrie, duel de fil, cette bibliothèque qui n'est pas un environnement de construction mis en place comme ça. Rien n'est nécessaire. Seulement vous devez, vous devez vous assurer que vous êtes des compilateurs GCC installés. Cela n'est fait que pour les fenêtres. Nous avons exclu ce secteur supplémentaire. Nous devons lier cette bibliothèque afin d' utiliser ces fonctions qui sont présentes dans cette bibliothèque. Donc, c'est là que les tendances et Windows et Linux. Donc aussi en nous disant que nous n'avons pas besoin de cette fonction, qui est que cette fonction n'est pas présente. Donc, presque toutes les fonctions sont similaires à Linux et Windows sont similaires seulement les méthodes de carburant qui ne sont pas utilisées sous Linux et il y a une différence dans seulement quelques méthodes. Donc, un dysfonctionnement, comme je vous l'ai dit, n' est spécifique que pour le système d'exploitation Windows. Ceci n'est pas utilisé pour le système d'exploitation Linux. Donc, une ligne par un, je vais également différencier en nous afin que vous puissiez commencer votre programme avec du sol Du Liniang donc il n'y a pas beaucoup de différence , inégalement ou différence minimale est là. Donc, ce sera très facile une fois que vous êtes capable de faire le programme dans ce système d'exploitation Windows, il est tout aussi égal de gagner le Linux parce que demander va, sont les étapes et le conseil d'administration tôt. C' est plus facile que ça. Donc, vous pouvez comprendre, vous serez inestimable pour qui la programmation. Nous verrons donc également dans la prochaine session. Tout d'abord, laissez-moi voir la prochaine session quelles méthodes de rôle mis en place statique câblé un aussi le système d'exploitation Linux pour rentrer à la maison la programmation socket. Donc, ils ont fait cette séance vraiment tenable. Qu' est-ce que métalloïdes et Berlin Waterman femme synaptique ou système d'exploitation Windows. Et dans la prochaine session, je vais discuter quelles méthodes et quart de million d'installation Waterman est nécessaire, quel fichier d'en-tête est requis pour Linux ? Et puis dans la session ultérieure, considérer les différences entre la programmation socket pour Windows et les eaux Linux ont la profondeur est nécessaire. Ce qui relie les bibliothèques dans Windows, nous devons faire et non pas nous avons à faire pour Linux et nous ne sommes pas les fichiers d'en-tête sont nécessaires. Et quelle différence est dans les méthodes ou tous les points que vous discuterez étape par étape. Alors voyons. Donc, j'espère voir que vous avez compris, compris cet accent sur w Et maintenant à la prochaine fonction TO, qui est commun à la fois au serveur et au client. C' est la fonction socket. Donc, cette fonction socket que vous devez créer ou latéralement ainsi que la faune. Donc, nous avons vu lors de notre session précédente sur de sorte que c'était notre conseil incliné. Navier a besoin de créer un socket en fait, et il a besoin de communiquer malheureux entre le serveur et ensuite le socket que nous serons, nous allons utiliser, vous allez créer ne devrait pas avoir le même type de socket ainsi qu'ils devraient être ayant le même domaine d'ambulance. Donc, ce sont des choses de base sur la socket et discutées dans les sessions précédentes. Donc, je recommande que, je vous recommande de passer par là, fouiller cette session avant d'en venir à cela. Donc, cela vous aidera également à comprendre ce qui est, alors quel est le but de cette socket ? I actionnaires indices de football sont publiés qui est utilisé pour créer un socket. Donc maintenant, lors de la création de la socket, nous avons de la dimension. Quel est le type de socket ? Donc, ici, vous pouvez voir les trois deuxième arguments présents. Et c'est si j'ai souligné les ins et la chanson soulignent la crème et c'est un groupe d'huile. C' est le protocole IP et le PCP. Si hostile que jamais via la création de socket, nous devons mentionner la socket. Donc, cet archétype peut répondre au type de flux ou il peut s'agir d'une page panam. Donc, je vais également mentionner sur l'insertion socket de base que, cependant, quels types de prises sont disponibles et Warhol adresse domino soul ici, ce type de socket peut répondre à un type non fiable. C' est l'équipe évidente payer sur picogrammes irréalistes d'utiliser le flux qui est fiable. Donc plus fort attacher ce gène couches nouvelles parce qu'il est très fiable. Et ce que toutes choses ont été faites. Et comme je l'ai mentionné lors de la session précédente, veuillez y aller. C' est donc le deuxième sujet d'argument. Et voyons un par un ou deux ou trois arguments sont. Donc, OK, donc ici, cet occupant est composé de trois arguments. Le premier argument EF souligné, qui est l'eau intelligente cette, donc il est une famille d'adresses Internet. Donc, ici, nous utilisons la version IP quatre. Il y a donc deux types. Il y a la version IP quatre et la version IP six. Donc, puisque nous utilisons la version IP quatre, nous devons écrire cette adresse internet familles ir, souligner l'ARN. S' il aurait utilisé la version IP six, nounous devraient rencontrer IAA et l'école et spécifique pour cette logistique via bleu, non ? Donc, ce sont ces métadonnées sur les familles d'adresses Internet. Donc, vous devez céder cet aimant lui-même. Et le deuxième argument que le flux de socket que, comme je vous l'ai mentionné, qu'il est un streaming sockets. Donc, cette prise fiable. Ensuite, nous devons mentionner le type de la socket, que ce soit un grand type de thème sur REP dissoudre, type datagramme, si sincère et en utilisant de la vapeur. Vous devez donc mentionner l'argument de Todd et de toi qui est celui-ci. Il est, il mentionne quel protocole est utilisé et pour cette orcas Gim me, avez-vous vu qu'il a utilisé un protocole de communication, RTCP. Si ce dipôle, cette socket était là, datagramme, et ce sera un UDP. Mais puisque nous utilisons leur type de socket, semble donc son protocole de communication est TCP ou IP oblique. Donc, j'ai mentionné dans la session précédente ou le socket V6. Alors s'il vous plaît, passez par là pour comprendre ce qui est illégal. Donc, aucune méthode de socket redondante éditable ne reviendra cependant. Descrip va ou actualise le référencement vers le socket créateur. Donc, ce que cette fonction particulière admin a monté Mildred sur le descripteur pour adopter une nouvelle socket qui est créé. Donc en ajoutant ce descripteur que vous y arriverez. Et vous pouvez utiliser le descripteur de données et vous pouvez faire fonctionner les différentes fonctions. Voyons donc un par un. Maintenant, une autre méthode commune qui sera utilisée pour le serveur ainsi que pour le client est le socket d'indice. Donc ici, il est utilisé par le nom lui-même. Vous pouvez comprendre n'importe quel autre ensemble d'une prise ou il peut décliner car il est commun à la fois pour sept et beaucoup de dysfonctionnement Lukoil. Donc, ici, nous demandons l'idée de service de regarder cela, j'étais occupé. C'est un descripteur. Tous les délais de production, football, alors vous devez donner leur descripteur de la prise. Donc année deux pour cela, il est utilisé pour déconnecter cette fusée, et c'est v. Pour le système d'exploitation Windows, nous avons d'abord socket Golden Globe, et ensuite vous devez faire w. alors qu'est-ce que ce nettoyage WSS ? Parce que pour délocaliser les ressources qui sont utilisées par la bibliothèque de sockets. Donc ce sol sont les détails et comment l'utilisez-vous de cette manière ? Donc, ceux-ci sont plus anciens, sont les méthodes communes qui seront utiles. Sidebar en tant que connaissance du client voir des méthodes spécifiques qui peuvent être là pendant que le serveur. Et puis nous verrons les méthodes spécifiques pour les lignes qui dérangent ceux qui utilisent un système. Donc maintenant nos amis vont être, maintenant les méthodes spécifiques que nous allons parler seront communes à bord ou le système d'exploitation Windows, ainsi que si le système d'exploitation infirmière sur ces méthodes spécifiques sont semblent. Bien que ce n'est pas une différence dans les fonctions pour le système d'exploitation Windows que les hommes comme un système d'exploitation Linux et vous écrivez programme socket pour la revendication souveraine. Ce sont les méthodes courantes. Il peut être utilisé ce qui va les adopter. Donc, seule la différence que je vous ai dit était dans cette fonction qui est WAC a commencé l'installation est utilisée sur Ebola et va système d'exploitation. Vous devez avoir besoin d'un, il est commun pour le serveur et le client Windows système d'exploitation, programmation de socket. Et aussi une chose de plus. Et je vais divulguer la prise. Donc, c'est aussi une différence et le système d'exploitation Windows et solide. Dans le cas de Nino, vous allez sortir du glucagon cette perte. Vous allez également déconnecter le socket, mais ne pas appeler cette fonction sera sur fonctions de perte IQ doivent être remplies et mentionner que dans la prochaine session, quelles méthodes sont utilisées ? Donc seulement que Louis XVI utilise, vous n'avez pas besoin de nettoyer toutes les différentes façons de fermer cela pour déconnecter la prise. Donc, ce n'est que la différence entre le système d'exploitation Windows et fait système d'exploitation Linux ou socket qui regardent les lignes. Donc, toute la pile de repos maintenant, nous allons discuter ici, ce sera Coleman, Do the Windows Operating system, Linux Operating system. 8. Socket Session5 Socket: Bonjour, bienvenue dans cette nouvelle session, c'est-à-dire sockets advert méthodes client. Quelques minutes avant la session, il avait vu la conférence sur les méthodes clientes du serveur de socket pour Windows. J'espère que tu l'as traversé. Ce sera donc suffisant si vous avez parcouru cette session, car presque les mêmes concepts sont expliqués ici. Mais j'ai une différenciation pour Linux. Quelles sont les choses spécifiques que j'ai utilisées pour Linux, quelles sont les configurations complètes requises, vous discuterez au cours de cette session. Ce n'est pas plus que cela. Ce n'est pas une grande différence. Dans le serveur de socket Linux et Windows seules quelques défenses de méthode sont toutes identiques, elles sont identiques à celles qui reviennent à l'arrière de ces fenêtres. J'espère donc que vous avez passé la session précédente. Donc, pour comprendre plus rapidement cette séance, je vais le couvrir. petits colliculi parce que presque les choses communes qui sont présentes ici, Linux et Windows mu vont bouger chaque semaine et le reste des choses qui sont spécifiques à l'ordre, je lui donnerai là-dessus. Donc, jusqu'à présent , vous allez couler plus facilement au lieu de passer par quelle session à plusieurs reprises. Voyons donc ici, quelles sont les méthodes en ligne des sockets pour Linux ? Ce que sont toutes les choses, elles ne sont pas nécessaires. Voyons voir, étape par étape. Ne vous inquiétez pas, vous comprendrez tout. Nous allons avancer étape par étape. Les sujets que je vais aborder ici, il discutera des méthodes courantes sont les API que je n'ai pas enregistrées sur le serveur de carte ainsi que les clients. Voici donc les deux méthodes. Donc, dans la première rubrique, nous verrons quelles sont toutes les méthodes courantes de fonctions, qui pour la barre latérale puis le client, et qui est utilisée pour Linux. Ce sont donc les méthodes qui sont courantes. C'est-à-dire qu'il existe deux méthodes. La méthode Socket est morte et l'autre méthode est la méthode close. Donc, dans le cas de Windows, nous avons vu, dans ce cas, une méthode supplémentaire était le démarrage de WSS, je vous ai dit qu'elle est utilisée pour les initialiser dans bibliothèque de sockets et nous devons nous lier à cette bibliothèque. Mais dans le cas de Linux, cette méthode n'est pas du tout présente. C'était une chose supplémentaire concernant les fenêtres. Mais dans la laideur de A, ce n'est pas là. Nous aurions donc également besoin de lier n'importe quelle bibliothèque, c'est-à-dire socket. Nous devons relier n'importe quelle bibliothèque en cas de linéaire, il suffit de l'installer. Le compilateur Gcc est installé et nous sommes en mesure de démarrer la programmation. Il s'agit des méthodes courantes pour le serveur et le client. Autrement dit, les deux seront utilisés maintenant, voyons ce que c'est. Maintenant, les autres sujets qui seront abordés seront le côté des méthodes spécifiques et nous allons sombrer avec les tribunaux. Et nous voyons toutes les méthodes, qu'elles soient côte à côte, spécifiques au serveur lui-même. Et nous verrons toutes les méthodes spécifiques au client lui-même. Donc aussi pour toutes les méthodes dont nous discuterons, modèles et spécifiques et spécifiques au client. Les mêmes méthodes que celles utilisées pour Windows, toutes ces méthodes sont également utilisées pour les déplacer. Donc presque tout est identique, juste les différences. Cette année-là, la fonction WSS Startup n'utilise pas Linux, ainsi que la méthode SOC close qui sera consultée ici. La syntaxe fonctionne différemment. Tout est similaire à celui des fenêtres et du linge de maison. Par conséquent, cette fonction spécifique au serveur sera également la même pour Windows et Linux et méthodes spécifiques aux délais seront les mêmes. Voyons donc les choses, puis discuter mêmes méthodes courantes ici gouvernent méthodes utilisées pour le serveur ainsi que les revendications, c'est très nécessaire. Le nœud important que je vous ai dit que dans Lena, il n'y a pas de fonction WSS Star Dot utilisée qui a une fenêtre ayant cette fonction. Vous avez vu que les méthodes courantes dont nous avons discuté au cours de la session précédente, nous avons vu qu'il existe trois méthodes extraites. On connaît le démarrage WSS qui a été utilisé pour initialiser la bibliothèque, c' est-à-dire la bibliothèque Wind Socket, et vous devez la lier. Donc ici, dans ce Linux, cette fonction n'est pas du tout présente, donc vous n'avez pas à vous soucier de la liaison également, aucune configuration n'est requise pour cela. Pour que seule sa jeune fille qui le télécharge. On arrive ensuite aux méthodes génomiques qui sont utilisées pour le serveur et le client dans le cas de Linux. La prise est donc utilisée. C'est donc la même chose que pour Windows, vous devez créer le socket. Il faut y passer des arguments. Ce premier argument est la famille d'adresses. Ici. Cela peut être pour IPv4, IPV6 lorsque nous donnons EF et l'école que je devais, ce qui signifie que c'est amusant. Je pense qu'il en aurait mentionné six, alors il sait ce que IPV6, c'est ce retrait et sa famille donne tel quel, comme je l'ai donné ici. Deuxièmement, vous devez passer le type de socket. Donc, j'avais discuté dans cette conférence de base avant cette session et j'ai dit que bien qu'il y ait deux types de conduits, les types de douilles, c'est-à-dire les prises de courant et prises de datagramme. et stream est un manifeste fiable. Je suis datagram n'est pas fiable et il avait vu quelles sont toutes les fonctionnalités disponibles pour la fiable et ce qui n'est pas fiable, nous utilisons surtout leur socket de niveau la plupart du temps parce qu'il fournit une correction d'erreur tout. Donc, toutes les choses que vous pouvez aller à la première session, donc cela peut être six. Et la troisième chose que vous devez mentionner le protocole de communication. Donc, depuis ce gène, donc je vais confondre ce protocole de communication est TCP, nous mentionnons ici PCP, s'il s'agissait d'un datagramme et qu'il utilise un protocole de communication différent, il est nouveau dont j'ai également discuté lors la séance sur les oignons sur le non-dommage que je viens de mentionner. Ensuite, il y a trois fonctions la même manière que celles que j'ai mentionnées pour les fenêtres sont également identiques ou ignorées, alors cette méthode de socket particulière retournera un pseudo socket descripteur. Où que vous créez le socket pour le cours ou où se trouve notre gamme de produits, il retournera un descripteur sur la socket pour cette ligne sombre en fonction de l'endroit où vous l'utilisez. Ensuite, la chose suivante est que les charges fonctionnent. Ici encore, cette fonction proche est que nous utilisons dans le cas de la prise fermée de fenêtres. Il y a donc une représentation différente. Vous déconnectez la prise par rapport au leader. Donc Nina est moi, j'utilise des inclusions et nous conservons leur descripteur. Si c'est du football latéral, réagissez en le perdant, alors vous devez mentionner qu'il est scénarisé de service. D'accord ? Oui, j'ai mentionné inclure la ligne de produits de socket que vous ne l'êtes au descripteur du déclin. Ensuite, vous verrez maintenant ces méthodes spécifiques au matériel. C'est courant pour Linux et Windows. Donc toutes ces choses qui seront répétitives si avant cette session vous avez passé par cette session, c'est-à-dire socket dit, Eh bien les fenêtres quadruple client, si vous êtes parti, alors vous trouverez ceci chose presque identique. Cela sera spécifique à la barre latérale. Nous avons donc déjà vu que la barre latérale doit se lier à une adresse IP particulière ainsi qu' à un numéro de port associé chaque fois qu' une communication doit avoir lieu. Tout d'abord, nous devons montrer que le serveur est en cours d'exécution pour qu'il puisse exister. Il est capable de recevoir toutes les connexions du client chaque fois qu'il s'agit d'un client Ignite this, comment il comprendra l' identité du serveur. C'est pourquoi le Salvo doit être lié à une adresse IP et un numéro de port particuliers. Par le nom lui-même, vous pouvez comprendre que le mien signifie qu'il est lié à quelque chose à l'intérieur de liaison avec l'adresse IP et le numéro de port particuliers. Donc, tout ce que je vous ai dit est écrit, est comme ça que vous appelez la fonction bind. Vous écrivez l' argument impulsion en tant que descripteur. Ensuite, vous êtes le second est un pointeur sur la structure, puis la taille de la structure. Donc, ce descripteur est un descriptif que vous atteignez la socket lorsque vous appelez la méthode socket, il renvoie le descripteur dans la socket de la barre latérale afin que vous ayez une dimension ici puisque via a m'envoie En utilisant leur descripteur de cette prise, nous n'avons besoin que de lier les sédiments, d'accord, nous devons le mien. Et à la seconde, nous donnons la structure de la prise. structure plus humide est donc nécessaire. Il est nécessaire pour que vous puissiez remplir les détails de l'adresse à laquelle ces conseils devraient être achetés pour vous retrouver avec un numéro et d'autres choses comme la famille d'adresses. Je vous explique également que cette adresse que nous la remplissons est si nous avons donné au serveur un EDD souligné et installez une nouvelle session. Je vais vous expliquer que vous voulez que l'importance est très importante. Le numéro de code, il doit être supérieur à 10 à quatre car il est utilisé lorsque 0 à quatre. Il devrait donc être supérieur à 0 pour l' un d'entre eux utilisé en nombre particulier. Il s'explique par les trois cinquièmes. Nous allons simplement passer en revue et voir quelle est la limite de 65535. Et puis c'est le numéro un, peu importe ce que vous avez mentionné, le numéro de port sur le serveur, vous devez dire mentionner la même fenêtre. Externalisation des clients. Il s'agit d'un numéro de port sur lequel le serveur achète. À faire. J'ai expliqué maintenant que lorsque nous avons vérifié les erreurs ici, vous pouvez le signaler plus tard. Je vous ai donc expliqué tous ces paramètres. C'est juste un Non, ne le dites pas. Voir la fonction suivante est décidée par cette fonction écoutée. Cela est commun à la fois à Windows et Linux, spécifique à ce serveur. douille. douille. Pour la leçon, une fois qu'elle est liée à l'adresse IP et au numéro de port, elle doit écouter cela. Pour écouter Dan, nouvelle connexion du client. En outre, une chose que j'ai ajoutée ici tout à l'heure parce que c'est une erreur qui était morte. En outre, la même chose simplement écouter la fonction. J'ai manqué que dans le cas de Windows aussi ce que les méthodes de socket de serveur. Voici donc les paramètres supplémentaires qui, c' est-à-dire en pliage, s'appellent Allison punch. Mais dans la programmation que j' ai écrite de la même manière que nous l'avons fait, je vais vous expliquer, qui va l'exécuter. J'ai exécuté de cette manière. Il est dit que passer les deux sont des humains qui sont nécessaires. En mentionnant simplement dans cette présentation, je l'ai raté. Nous parlons de la fonction de leçon lorsque le podomètre supplémentaire, que j'ai édité comme colonne vertébrale. Cet arriéré est le deuxième argument ici. Ce que c'est, pourquoi il est nécessaire avant tout u et v mentionner le descripteur de prise de trottoir. Dans le deuxième carnet de commandes, cela indique la quantité de demande de connexion du client dans la file d'attente. Par exemple, si vous donnez ici. Cela signifie donc que vous dites que la post-conversation sur cette prise est capable de recevoir soit un conseil d'administration et des actions de déclin économique. Mais cela sera dans la file d'attente car puisque le Bazin One est en cours de processus, s'il y a plusieurs lignes, aimant et les actions seront dans la demande de connexion de flexion. Donc, ceux qui attendront réellement un opprimé dans un qui terminera la mine actuelle est terminée, puis la valeur secondaire sera d' écouter celles des connexions une par une à la fois. L'un sera traité, mais l'autre sera en soins intensifs. Donc, le nombre de connexions du client que vous souhaitez conserver dans Q, vous pouvez mentionner dans ce deuxième argument. Donc, toutes les sources semblent dans le cas du système d'exploitation Windows. J'ai donc expliqué la fonction de leçon, mais j'ai manqué de donner le deuxième argument et cela considère juste la même chose qui est au Texas, même depuis que je le vois juste pour Windows et Linux. Ainsi, le deuxième argument sera ajouté au repos, tout est enregistré. J'ai juste manqué celui-ci. Maintenant, c'est ainsi que vous allez écouter d'autres nouvelles demandes de connexion, pour leurs demandes de connexion à partir du dysfonctionnement du dépôt de délai. Ensuite, vous appelez la fonction de sortie. Et c'est que j'ai écrit la fonction de sortie dans laquelle vous allez donner le descripteur ici sur le serveur. Ensuite, vous mentionnerez le pointeur vers la structure. Et puis un an pendant différentes choses qui existent, c'est le client un DDL, que vous obtiendrez. Donc ici, tout d'abord, dans le cas de la fonction de sortie, cette structure que vous allez nous donner tout ce qu'elle renverra cette fonction de sortie, elle retournera notre descripteur de la nouvelle socket. Donc tout ce que vous avez à descripteur de socket post socket descripteur. Vous avez glissé le menu appelé fonction socket. Ici. Lorsque vous suivez la fonction socket, vous avez acheté un descripteur. C'est donc le cas. Il est utilisé pour recevoir de nouvelles connexions. Pour la connexion , il est utilisé, c'est ce descripteur de tri que vous obtenez réellement lorsque vous appelez la fonction de sortie et cette adresse. Il s'agit de poudre descriptrice Doug. Il est nommé socket Glenoid car vous obtiendrez un descripteur pour le nouveau descripteur de socket ou vous déclinerez. Ainsi, avec ce script, vous pouvez communiquer avec cette ligne et envoyer les données pour refuser ou recevoir les données à partir de neuf. Ainsi, les photographes déco pourraient utiliser Bazaar car ne bloquez rien une fois que ce descripteur de socket peut être utilisé pour connecter les demandes des clients et que les descriptifs ISACA deviennent attrayants lors de l'envoi et de la réception des données. Il y a donc deux descripteurs. Et c'est à quel point le jugement vous explique ce que vous devez faire, comment remplir cette structure, cette structure. Il faut mentionner les détails de la structure elle-même. La prochaine chose entre voir, c'est qu'une fonction C. Donc aussi une chose pendant le socket serveur, vous pouvez appeler la fonction de réception. Vous pouvez appeler la même fonction. Donc, tout ce que vous pouvez appeler en fonction des besoins. J'ai un bon aperçu de cet indice. Mais cela n'est pas utilisé pour recevoir le message du client afin de voir s'il s'agit de l'adaptateur sur cette ligne. Et ici, vous devez mentionner que socket en fait. Donc, puisque nous ne pouvons pas créer la socket , nous avons obtenu ce descripteur quand nous l'appelons, les expositions sont au descripteur lui-même. Nous devons recevoir cela. Tout ce que nous recevons du client sera recueilli ici avant de pouvoir l'imprimer avant qu'il ne soit de caractère industriel. C'est donc ce qui se passe dans le cas de l'ensemble de fonctions spécifiques au serveur. Et c'est la même chose pour eux , ainsi que pour Linux. Voyons maintenant les méthodes client qui sont une date limite spécifique. Donc, inclinable pour simplement le connecter même manière que je vous ai expliqué lors de la session précédente pour Windows. Il est utilisé pour communiquer sur le réseau. Il est nécessaire de se connecter au serveur. Nous devons ici mentionner cette structure d'adresses. Aussi une chose que je vais très vite dans cette session qui est pour les méthodes client de la barre latérale socket pour Linux, car dans la session précédente, il y avait des méthodes clientes publicitaires pour Windows. Je vous ai tout expliqué pour Linux aussi, la même chose juste, il y a un prince de beauté dont j'ai parlé vous et vos dysfonctionnements de repos, dont je parle. Presque tout est identique. Il y a donc une raison pour laquelle je vais vraiment des mots de passe très, il est recommandé d'acheter avec Danio session pour mieux le comprendre. Mais je couvre tout. Je ne manquerai rien. Je ne veux donc pas que tu partes à plusieurs reprises. C'est une raison pour laquelle le jeu est passé ici pour se connecter. La ligne **** est uniquement censée se connecter. C'est donc ce que nous avions tendance à céder leur dette. Il s'agit donc d'une dimension, de l'adresse IP de la machine hôte locale. Ainsi, dans notre cas, E et B ont la communication socket au sein de la même machine hôte. Ainsi, même si vous le pouvez, vous pouvez avoir une communication par socket sur la même machine hôte ou au sein de différentes machines. Donc dans ce cas, chaque fois que vous avez une communication par socket, une fois que j'ai lu, vous avez enclin à courir sur la même machine, même ordinateur portable semblait s'arrêter. Ensuite, dans ce cas, l'IPS, le client devrait se connecter à la récupération de donner l' adresse IP sur le serveur où cette ivoire par m2 afin que vous puissiez simplement mentionner l'idée de la adresse IP locale car puisque nous exécutons le client serveur sur la même machine hôte. Donc, de cette manière, vous devez mentionner ici IBM Internet et sa famille. Et le numéro de port que vous devez me mentionner était que nous avions des liaisons à ce numéro de port, donc je donnerai la même chose du côté client, puisque le client se connectera au même numéro de port, puis nous appelons la fonction connect dans descripteur de pâtes de la prise que nous avons obtenu en la créant. Ensuite, c'est juste structuré entre l'abrogation avec ceci, je serais à cette fin, le numéro de port et la taille de la structure. C'est le, c'est un vieux Donato à propos de la table, une autre fonction est celle du capteur. C'est le client, c'est la connexion en appelant simplement la fonction connect de cette manière, c'est simplement alors qu'il peut envoyer et recevoir les données. Il s'agit donc d'une syntaxe et vous pouvez également recevoir leur fonction de semence de qualité à partir d'ici. En l'envoyant, nous envoyons une chaîne de caractères, même chose, apprenant la programmation de socket en profondeur. Nous transmettons les données du descripteur de socket, envoyant cette chaîne de caractères dont nous avons échoué avec les données côté Bouddha. Et ensuite aussi à partir du client, c' est-à-dire d'ici lui-même, ces données seront envoyées au serveur dans la taille de cette chose. C'est donc ce que nous enverrons conforme à plusieurs amis. J'en ai fini avec ces méthodes Brookline pour Linux. Vous pouvez donc comprendre en résumé, vous avez compris ce que tous les princes, leur affiche pour un dipôle sous Linux, il n'y a pas de configuration ni de liaison la bibliothèque Wind Socket puisque nous sommes ne pas utiliser ces fonctions. Dans le cas de Nina, il n'y a pas de fonction WSS Startup. Par conséquent, cette chose n' est pas un dysfonctionnement n' est pas le cas président de Linux. Ensuite, reposez d'autres choses comme la création de socket est similaire à celle des fenêtres également. Et la fermeture de la prise, nous devons également déconnecter dans le cas de Windows, ce que la saisie de l'index est déterminée dans le cas de Windows que nous appelons prise de colle et il y a différents, nous faisons également le nettoyage. Mais dans le cas de Linux, rappelez-vous simplement que Lewis fonctionne pour déconnecter le socket. Il s'agit ensuite des méthodes spécifiques utilisées pour le serveur. méthodes qui lient ou le trottoir que nous allons écouter puis accepter toutes ces choses qui seront communes pour système d'exploitation Windows ainsi que pour les linéaires, pour les Lynas qui ont répondu de la même façon et pour les fenêtres de la scène. Ce sont les choses qui existent. Dans le cas du côté client, également les méthodes spécifiques du client qui seront présentes, qui seront également courantes pour Linux et n' importe quelle fenêtre. Vous devez donc vous connecter depuis le client. Nous devons envoyer et recevoir leur fonction. Envoyez et recevez les données. C'est donc ce que nous avons vécu maintenant dans cette session, je vais vous expliquer la différence entre les sockets d'application pour Linux et Windows. Pour que je vous explique. C'est beaucoup de choses, donc elles seront là, qui sera courant jusqu'à présent, nous avons étudié c'est le Waterman gagnant installé sur Windows, mentionnant simplement cela pour relier la bibliothèque et ensuite Linux inconsidéré pour simplement installer GCC semblait s'assurer que cela évoque. Ensuite, je vais vous expliquer quels sont tous les fichiers d'en-tête requis pour Windows, quels sont les propres fichiers d'en-tête requis pour Linux ? Alors, quel code supplémentaire est requis pour Windows et quelles sont les méthodes courantes ? Ce que je tape vérifier, comment vous allez signaler une erreur sous Windows, comment vous signalez sous Linux. Une conférence morte. Nous serons vus une fois que vous aurez passé cette session, puis plus tard, nous commencerons la programmation. Les milieux que nous avons vus vous apprendront et aussi en respiration sifflante. Une chose importante est que la communication client du serveur HTTP sera en cours d'exécution si vous ne l'avez pas vu, en voyant comment le navigateur parle avec le serveur Apache, comment se déroule la communication chaque fois que vous ouvrez n'importe quel site, chaque fois que vous souhaitez ouvrir Beijing Jenny sur le navigateur du navigateur envoie une demande, comment il sera connecté au serveur Apache et comment les données seront remplies, comment la page sera remplie de cela, avec ces données, la page sera chargée afin que nous être vus en utilisant le socket, utiliser la communication du serveur HTTP qui est très importante. C'est ainsi que nous allons procéder étape par étape. Merci. Merci beaucoup. 9. Socket Session6 de différence ; Socket pour Linux: Bienvenue dans cette nouvelle session qui fait la différence entre Windows et la programmation du socket de Nina. Nous avons déjà vu dans la session précédente les méthodes de socket Windows ainsi que les méthodes de socket milliardaire. Et j'espère que vous avez assisté à ces séances. Ils seront très utiles dans l' esprit de cette session. Ce sera cela qui vous donnera la différence entre les fenêtres et celles de Nina. Mais certains adultes ici. Commençons. Sujets. Nous couvrirons la défense dans configuration de l'administration de l'eau pour effectuer la programmation des sockets sous Windows et Linux, nous en discuterons. La prochaine chose que nous discuterons ce que tous les fichiers d'en-tête sont nécessaires pour la programmation des sockets sous Windows et Linux. Ces fichiers d'en-tête seront différents pour les deux. Ensuite, nous verrons la défense et peu de méthodes. Il s'agit d'une fonction de programmation de socket sous Windows et Linux. Bob. Donc, dans ce troisième, vous êtes peut-être un métal presque tout parce que nous avons vu dans la session précédente elle-même en vous faisant comprendre programmation de socket pour Windows et Linux. Je vous avais dit quelles fonctions sont utilisées sous Linux et Windows. Presque les séminaires sont presque toutes des méthodes que j'utilise des globules rouges, fenêtres de dépôt sur place et des fenêtres de dépôt sur place et une légère différence dans l'une des fonctions et le reste. Toutes les choses que j'ai vues ont décidé de la configuration. Voyons donc voir. La quatrième, je discuterai du sujet qui est différent du scénario Reporting entre Windows et Linux. Commençons donc maintenant la première publication qui est la configuration, le prince et la facture, ou les deux, faux. Nous verrons la configuration du bac pour les fenêtres pour effectuer la programmation du socket. C'est donc B. Ce sera un peu répétitif car nous avons vu dans une session précédente sur la source, le système d'exploitation Windows pour effectuer la programmation des sockets, nous devons lier à la bibliothèque qui est Nous soulignons 32 points lib. Parce que nous utiliserons les fonctions. Les fonctions sont définies dans ces bibliothèques pour la fenêtre, le socket de fenêtre. Par conséquent, nous devons lier cette bibliothèque car le temps d'exécution, si vous ne liez pas cette bibliothèque plus tard lorsque nous exécutons le programme, il nous donnera la liaison plus tard. Il ne trouvera pas la bibliothèque car nous ne l'avons pas reliée. C'est donc très important et les étapes pour le lier, j'ai mentionné ici la même chose, les options de construction du projet. Ensuite, nous devons cliquer sur le lien ou les onglets de réglage et ces choses, voici les étapes que vous devez parcourir. Ensuite, vous devez ajouter ces bibliothèques. Nous écrirons également le programmeur et vous montrerons manuellement comment le faire, parcourir sur l' idée et vous expliquer. C'est très important. La configuration est vraiment importante. Sinon, vous obtiendrez un lien au moment de l'exécution. Maintenant, vous avez dimension, le boîtier pilote d'en-tête sur la programmation de la prise de fenêtre. Maintenant, voici la configuration du bâtiment Waterman, l'unité élémentaire si je suis plus tard. Ensuite, la configuration du bâtiment Waterman pour les Linuxes, vous devez simplement vous assurer que votre compilateur GCC est installé ou non parce que c'est une nouvelle de compiler le code qui est différent mais idéal. Et donc, si vous souhaitez passer par l'interface utilisateur de l'interface utilisateur, vous ne pouvez pas utiliser la ligne de commande. Vous pouvez installer un ID particulier, ce cas, et vous pouvez créer un projet en réalité. Et vous pouvez envoyer du code de fuite ou de programmation ainsi que du code programmation aléatoire ou aléatoire. Vous n'avez pas besoin de lier la bibliothèque. Si vous utilisez un dessin en ligne de commande, assurez-vous que votre GCC est bien, il s'agit d'un compilateur installé ou non. Il sera installé par défaut sur les images et plus court. Aucune librairie de liaison ne sera requise dans le cas des bibliothèques Linux. Et nous devons mentionner quelques fichiers d'en-tête pour Linux également pour faire la programmation de socket dont nous discuterons plus tard dans les diapositives ultérieures. Maintenant, cette configuration est suffisante pour démarrer la programmation sous Linux. Voilà donc ce qu'il y a en fait dans Windows et dans les libéraux. Et la différence suivante pour la tarification des en-têtes entre ce que le fichier d' en-tête doit être inclus ou Windows pour effectuer la programmation du socket et pour la zone linéaire. Il s'agit donc de fichiers que vous devez inclure mon système d'exploitation Windows pour effectuer la programmation de socket. Il faut que tu le fasses. J'ai mentionné ce stdio.h iodo, LA simple entrée-sortie pour afficher simplement le message sur la console ou simplement donner l'entrée de la console. Mais c'est ce qui se passe. Ce sont les fichiers de crédit que vous devez fournir dans le cas de Windows. Ensuite, le bord du point de chaussette à vent, c'est spécifique à eux lorsque les fonctions de socket seront déclarées dans ce fichier d'en-tête. Vous devez donc mentionner ce tuyau d'en-tête. Ensuite, il faut mentionner que les MST vivaient sur le bord. Ce sont les trois fichiers d'en-tête dont vous avez besoin pour effectuer une programmation de socket dans les devinettes. Ensuite, la date limite, vous devez mentionner tous ces fichiers d'en-tête. C'est le dotage de socket DIN stdio.h, I dotage, std lib, string dot edge. Et puis vous Anna, Anna, UNI stdio.h. Donc tous ces fichiers d'en-tête. Vous devez donc donner, dans le cas du système d'exploitation Linux et vous effectuez la programmation de socket. Ce sont là les différences entre eux. Le sujet suivant dont nous allons parler, quelles sont les différentes méthodes entre les différentes pour Windows et l' ordre lorsque nous avons vu une programmation de socket blanche jusqu'à présent, Windows, comme je vous l'ai dit, c'est la fonction supplémentaire que nous utilisons. Cela est très nécessaire pour le système d'exploitation Windows. Il est utilisé pour initialiser. Vous avez tous été une bibliothèque de sockets, mais cela indiquera au réseau que le programme veut que vous puissiez utiliser la version numérique de la bibliothèque que le programme veut que vous utilisiez. Cela vous donnera donc la version deux chiens 0 sur la bibliothèque de souches éoliennes. Le programme indiquera cette version que vous devez utiliser pour cette bibliothèque Mintaka. Et cette fonction est utilisée pour initialiser la bibliothèque de sockets. Et la deuxième structure de données indiquait la structure. Ainsi, la structure aurait été la bibliothèque de sockets fournira les informations critiques de communication tout en communiquant le programme, voyant combien de sockets et permet de le faire. à créer. Donc toutes ces choses existent dans le cas de New, dans le cas du système d'exploitation Windows, pas sous Linux. Il s'agit donc d'une fonction supplémentaire qui est que dans Windows et vous ne savez pas, vous n'avez pas besoin d'utiliser une valeur nominale. Il s'agit donc d'une différence dans l'une des fonctions. Cette méthode les distribue individuellement, IX étant une nouvelle version, le cours le lira mieux comme la visualisation sur les bibliothèques. Deuxièmement, lorsque je vous donne les informations critiques sur la quantité de ces sockets qui peuvent être créées, elles seront envoyées de la bibliothèque au programme. C'est ce que j'avais mentionné. Oui. Puis Nina dit que je vous ai dit qu'il n'y avait ni stock ni fonction, initialisation ni cousine Nina. Maintenant, une autre chose est que dans le cas des fenêtres, sont des fonctions qui sont utilisées pour déconnecter la prise. Nous devons appeler ça la fonction close socket. Vous devez provoquer ce descripteur de socket. C'est ce que j' espérais que parce que j'ai dit à propos de notre client avait une offre scriptée par deux pères en fonction de vos besoins et une fonction de nettoyage devrait également être appelée dans le cas de Windows. Qu'est-ce que ce nettoyage WSCC ? Il est utilisé pour délocaliser les sources de données utilisées par le Beanstalk. Ceci est définitivement activé et il retournera 0 et nombre de succès et non nul en cas d'échec. J'espère que vous avez compris cela. Ce sont les méthodes qui sont utilisées dans le cas de Windows pour déconnecter ce socket, aucune fonction que vous devez appeler. Et il y a un but que je vous ai expliqué pour le nettoyeur WAC. Ensuite, dans le cas de Linux, pour déconnecter le socket il suffit d' appeler la fermeture. Ensuite, vous devez passer ce descriptif. S'il est satisfait, il s'agira du script vers le haut. S'il s'agit d'un Linux, s'il s' agit d'un client, il s' appliquera. C'est bon d'y aller. Il est simplement fermé. Il n'y a pas de nettoyage et tout. Ensuite, une autre différence et autre sujet approfondissent les défenses, la défense et les rapports d'édition entre Windows et Linux. Voyons donc pour Windows, comment votent-ils par erreur ? Il s'agit de la réponse de modification de la fonction. Le message va arriver ici. Ensuite, il vous suffit de mettre ce message et ce message et de le faire rassembler ici. Et c'est une fonction qui est WL, je dis « get lost error ». De cette manière, vous devez signaler une erreur. Alors, qu'est-ce que cette erreur WSL GetClass ? Voyons maintenant les détails de toutes ces choses maintenant dans la fenêtre utilise sa propre fonction de message d'erreur oui pour indiquer que ce qui a mal tourné avec l'appel de socket, cette fonction peut renvoyer un entier représentant la dernière zone où il y a une bonne décennie en raison du handicap du champ d' appel de socket. Donnez-vous ce que mon, quelle est la raison de la vidéo de prise ? Il renverra un entier. Maintenant, il y a la version Windows ICD-10 des réponses de modification utilise duck, la dernière erreur. C'est donc toute la description à ce sujet. Dans le cas de Windows, nous devons signaler une erreur de cette manière. Voyons maintenant que les noix linéaires Sweeney ont la même fonction, mais cette fois qu' il n'a pas appelé, nous allons même appeler. Il s'agissait d'une classe GetClass et d'une somme égale. S'il n'a pas fonctionné, c' est l'éditeur B et le message de l'éditeur Yoda a été SP edit pour signaler les messages d'erreur système. C'est une différence. Maintenant, toutes ces choses sont nécessaires en fait. Voilà donc les différences entre la programmation de socket Windows et Linux. Vous pouvez donc voir peu de différences mortes ou de fonctions. Si vous parlez uniquement des fonctions sous Windows, vous devez ajouter une fonction supplémentaire, la fonction de démarrage OWASA. Et une autre chose concernant la fonction est que la fonction de perte est différente. Les syntaxes, différents modèles, Windows et Linux reposent tout ce qui est spécifique au serveur dans un délai précis les fonctions sont les mêmes , donc nous n'avons pas parlé d'eux. Je suis juste en train de tamponner la configuration est différente dans le cas de Megiddo. Vous devez donc ajouter ces bibliothèques, comme je l'ai mentionné dans cette étape ici. Dans le cas de Linux, la configuration de liaison est requise. Et sur Nipah Linux, nous devons en faire deux autres si votre compilateur est installé et l'édition, les fichiers d'en-tête que j'ai mentionnés, sont les différentes entreprises pour Windows et pour ordre. Et la dernière chose à propos du signalement des erreurs de viol, c'est le discours différent, la fonction différente de Windows. Et dans le cas de Linux, il appellera la fonction différente qui est meilleure. C'est ça, c'est tout. Vous devez en tenir compte. Les deux bombardent la programmation de socket pour Windows et Linux. Alors ne vous inquiétez pas, les amis maintenant dans la prochaine session, même voir la communication client latérale du socket. Il écrira le jeu de cartes verticales pour la programmation du socket Windows. Et nous allons écrire le code client pour la programmation. Pour le code client pour les fenêtres sera et ensuite nous ferons la communication. Je vais vous le répéter, comprenez qu'il y a beaucoup de différence minimale entre Windows et Linux. Donc, une fois que vous connaissez le codage de la fenêtre pour la programmation du socket pendant que vous êtes, c'est juste un gros choix, mec, d' écrire un programme pour l'ordre, vous n'avez pas besoin de vous inquiéter en fait, c'est juste pour copier collage qui sort de Nina parce que sous Linux, c'est beaucoup z que celui des fenêtres parce que certaines fonctions ne sont pas utilisées. Reposez également les défenses là-dedans. La fonction close que vous devez appeler minute indifférente car tout est identique et aucune configuration n'est requise pour Linux. Si vous connaissez la programmation pour programmation des sockets ou si vous avez décidé quoi que ce soit ainsi que client pour Windows, vous le serez si ce serait très bien Z refaire la programmation de socket pour Linux. C'est ainsi que nous allons suivre les tendances. Merci. Merci beaucoup. 10. Socket Session7: Bonjour, bienvenue dans cette nouvelle session qui est dit sur application de la programmation de socket pour Windows dans le bloc de code avec son exécution. Donc, ici, nous allons écrire le code pour la programmation du socket serveur que nous allons faire, allons faire la programmation du socket client, exécuter pour les fenêtres, exécuterons sur le bloc de code. Et nous verrons comment ce jeu de socket s'appliquerait une minute l'un avec l'autre. Cette session ? J'espère que vous avez déjà visité la session précédente en segments riz parce que nous avons couvert les différentes méthodes, les différentes fonctions, différentes fonctions, le serveur de socket ainsi que l'emmaillotage, socket client ou Windows, ainsi que nous avons également synchronisé avec le code. Quelles sont les instructions utilisées, quelles sont les différentes fonctions ou utilisations, quel est son but ? Et comment pour le côté serveur, quelles sont toutes les fonctions par opposition aux deux-points côté client, quelles fonctions doivent être ? Vous avez vu ? Toutes ces choses que nous avons vues, nous avons également vu la configuration de l'administration de l'eau du bâtiment, qui est nécessaire pour programmation de socket Windows ait lieu. Si ce n'est pas le cas, veuillez visiter ces sessions. Nous commencerons à coder pour la programmation des prises de ligne de trottoir. Ce sera très physique. Je vous expliquerai quand même puisque nous allons créer un nouveau projet afin d'écrire le code pour le serveur, la programmation du socket client pour Windows. Et nous allons faire l' ensemble de la liste que j'ai mise en place, voyant ce que nous avons à lier. Quels sont les liens entre les bibliothèques ? Vous allez donc toujours recevoir des groupes que nous traversons cette session. Commençons. Donc, pour simplement réviser, nous avons vu plusieurs méthodes de socket. Quels sont les serveurs qui sont de bonnes méthodes que nous avons vues. Tout d'abord, il y a d'initialiser WAC. Cela est obligatoire sous Windows pour Linux, nous n'avons pas besoin d'initialiser WSL. Nous avons donc vu quel est le but ou le sujet. Il est utilisé pour les initialiser et Socket Library. Et nous avons vu comment le programme va provoquer l'avortement. C'est un, mais j'ai été une bibliothèque de sockets. Les messages sont donc humains. Nous l'avons vu, vous avez vu quel est le deuxième argument. ai fini par APA Socrates pour initialiser Dove et Socket Library. Ensuite, la deuxième fonction que nous avons vu pour créer une socket, puis elle retournera ou descripteur de la socket. Nous avons donc vu que lors de la création d'une prise, nous devons donner le type de socket et il est régulé comme une prise de courant. C'est une socket fiable ou s'il s' agit d'une prise de datagramme à un certain niveau, socket. Et c'est à peu près comme nous devons donner le protocole de communication. Puisque nous savons que le socket de flux utilise TCP, datagram utilise UDP. Nous pouvons créer ce socket ET les portes sur les méthodes serveur que nous avons C, puis nous obtenons ce descripteur de socket. Ensuite, du côté du serveur, nous devons lier ce socket au diabète et au numéro de port que nous avons vu. Ensuite, nous avons écouté cette prise. avons donc pas vu de fourgonnette, nous écoutons sur cette prise. Nous allons passer le descripteur de socket, ainsi que vous mentionnez dans le deuxième argument, combien de ces connexions de socket du client doivent être dans la file d'attente, en attente file d'attente. Ensuite, nous avons une fonction de sortie de bloc pour accepter la connexion du client. Et une fois la connexion établie, donc lorsque nous appelons cette fonction de gestion de sortie, elle retournera un autre nouveau descripteur de fichier. Et ce descripteur de fichier, nous pouvons effectuer l'envoi et la réception commencé pour envoyer et recevoir des données à domicile avec ce client. Ce descripteur de socket, qu'il s'agissait. Revenez donc de cette fonction de création. Cela, nous continuerons à accepter la connexion. Et un autre socket, le nouveau descripteur de socket W, conservez-le pour la lecture et l' écriture pour la communication avec ce qui a augmenté de 9 % de données ainsi que pour recevoir les données. C'est ainsi que nous avons vu la fonction de déconnexion terminée pour déconnecter le socket dans le cas des méthodes de socket de serveur. Ensuite, nous avons vu la prochaine chose que sont les méthodes de socket client. Je n'ai pas eu besoin d'initialiser l'essai. Cela est également spécifique à Windows uniquement. Initialisez la bibliothèque de chaussettes à vent. Ensuite, nous avons créé le socket sur les clients que j'ai souligné, il n'y a pas beaucoup de code si vous utilisez vos fonctions. Nous devons donc initialiser les États-Unis pour initialiser les bibliothèques de chaussettes à vent afin que nous puissions l'utiliser. Ensuite, nous devons créer le socket pour ce client et ce serveur sont des applications différentes, chacune d'entre elles doit avoir cette création de socket sur eux. Et nous devons également mentionner le même type de socket ainsi que le protocole de communication cible doit être identique de chaque côté, mais aussi des sparklines pour qu' ils puissent mais aussi des sparklines pour qu' ils puissent communiquer entre eux. Ensuite, nous appellerons la fonction Connect afin que le client puisse envoyer une demande de connexion au serveur. Ensuite, une fois la connexion acceptée par le serveur, envoyez et recevez des statistiques du client lui-même. Ensuite, déconnectez la fonction, ne déconnectez pas la prise. Donc, toutes ces méthodes que nous avons vues maintenant commencer à parcourir le serveur, la programmation du serveur client dans le bloc de code de Windows. Créons un nouveau projet dont vous avez besoin pour installer l'IDE Woodblock. Et c'est vraiment des disponibilités et de l'open source. Vous n'avez donc pas besoin d'acheter une licence. Si vous l'avez vu, si vous installez cet ID, vous pouvez écrire le programme avec moi et exécuter et voir comment se déroule la communication. Je l'ai déjà installé. Je vais ouvrir l'ID de bloc entier. Je vais créer un nouveau projet. Nous allons donc d'abord créer un nouveau projet pour l'argent. Nous allons ensuite créer un nouveau projet pour cette ligne. Une fois le bloc de code installé, suffit de double-cliquer dessus. Vous verrez cette page. Maintenant, créons un nouveau projet en cliquant sur Fichier. Sélectionnez nouveau, puis projet, puis sélectionnez une application de sol. Cliquez ensuite sur Suivant. Ensuite, puisque nous écrivons le programme en C plus qu'il est déjà sélectionné, cliquez sur Suivant, puis écrivez le nom du projet. C'est donc une sorte de prise. Windows doit être un nom très raisonnable ainsi qu'un nom court afin que vous puissiez comprendre ce que vous faites dans le programme. Il s'agit d'un nom de dossier que vous souhaitez vider ce projet. Cliquez ensuite sur Suivant et créez simplement un programme Hello World par défaut pour vous. Nous devons maintenant le remplacer par le code serveur. J'ai déjà écrit le code. Je vais copier ici. Je ne veux pas perdre temps à écrire des instructions uniques. Vous avez déjà vu lors d'une session précédente ce que toutes les instructions utiliseront. Je vais également vous expliquer ligne par ligne les instructions sur le programme de jeu lui-même. Et ensuite, nous allons l'exécuter. Pendant que vous le faites. Une fois encore. En écrivant le code entier, vidons le code que j'ai déjà écrit. Le code que j'ai déjà écrit, je viens de télécharger. Je n'ai que des augmentations, j' augmente cet exercice pour que vous puissiez voir quel codage nous faisons. Augmenter cela excite. Commençons maintenant par comprendre ce programme un par un, ligne par ligne sur le serveur. Il utilise donc les mêmes dysfonctionnements que nous avons déjà observés jusqu'à présent. Maintenant, l'exécution de votre programme commence dès le premier, c'est la fonction principale. J'espère que vous sachiez peut-être quelle est la fonction principale. fonction principale est la meilleure fonction chaque fois que vous compilez le code, chaque fois que vous l'exécutez, l'exécution de votre programme commencera toujours à partir de cette fonction principale. Quelles que soient les lignes de code que vous allez donner dans cette fonction principale, neuf par neuf exécutées. Et c'est un point d'entrée pour commencer une exécution du programme afin que le contrôle des coûts entre dans cette fonction principale et ce moteur, quelles que soient les lignes que vous avez écrites ici et qui seront exécutées ligne par ligne. Voyons maintenant pour le code serveur ce que nous avons écrit pour la programmation des sockets. Nous avons déclaré que nous avons vu cela comme des données WIC. Nous avons vu ce que c'est. Nous avons, nous l'avons initialisé, créé, créé la variable sur ce type de données, c' est-à-dire les données WSL. Nous avons vu qu'au cas où sur les fenêtres, vous avez des foo. Initialisez la bibliothèque de chaussettes à vent pour cela, nous utiliserons. Vous allez appeler la fonction de démarrage. Cette fonction de démarrage comporte deux arguments dont le second est le pointeur vers les données WSL de la structure. structure la plus large au besoin. Nous avons vu que nous avons besoin de ce DO. Il s'agit souvent d'événements de bibliothèque. Il communiquera avec le programme, donnant aux chiens des informations critiques, c'est-à-dire le nombre de prises pouvant être créées. Cette structure sera remplie. conséquent, puisque nous allons l'utiliser, nous devons donc créer une variable proposée de cette manière, les données WAC. Ensuite, nous créons l' objet de cette socket. Nous avons deux objets sur cette prise. Nous savons que le descripteur de socket sera reçu lorsque nous appelons la fonction socket ici. Et j'ai un descripteur de socket qui me trompe quand on appelle la fonction d'exception. Alors, quittez la fonction sur leur descripteur de socket à un mode. Nous avons vu qu' il y a encore une raison. En créant l'objet de cette socket, nous créons de nouveaux objets par le socket du serveur de noms et par le nom Je suis sock. Ensuite, la partie suivante est SOP ADD ou les ions de soulignement. Nous peignons donc à nouveau à l'objet car dans V&V appelé une fonction socket. Lorsque nous appellerons la fonction de liaison, vous avez rempli toutes les données structurées avec l'adresse IP où ce serveur va se brouiller et avec le numéro de port. C'est pourquoi cette structure sera nécessaire. Et il s'agira de créer l'objet de celui-ci. Et là encore, ma structure la plus structurée est nécessaire. Il est nécessaire chaque fois que vous appelez la fonction de sortie. Nous devons mentionner cela ici. On dirait que c'est ici. C'est la raison pour laquelle cela est nécessaire et que vous créez sur le pont offert de cette manière. Maintenant, la toute première fonction qui s'appellera UFC, il doit les initialiser dans Salt Library. Nous appellerons donc cette fonction WSS Startup. Et vous allez passer deux arguments. Le premier argument, qui sera meilleur, indiquera au programme qu'il veut utiliser la version des bibliothèques de bogues et de sockets. Donc, puisque le programme veut utiliser une version 2 avant que le premier argument soit donné de cette manière, faites quoi entre parenthèses deux virgules 0, cela signifie que le programme à utiliser. Lorsque Socket Library 2. Le second qui est un pointeur vers cette structure, cette structure de sorcières, que les données seront ici. Bibliothèque de sockets avec programme ancien ou combien de sockets elle peut être créée. Cela sera donc rempli avant la fin de la fonction de démarrage du SMSI. C'est ainsi que cela sera transmis en tant qu'EMT et il sera comblé. Je n'ai pas parlé de bibliothèque et ces informations seront remplies. Combien de prises seront, encore une fois, créées ? Quittez les informations préalables. C'est ainsi que nous appelons cette fonction pour la programmation de socket de fenêtre et le site serveur. Ensuite, puisque je n'ai pas, vous savez, une partie de la règle est de créer une socket. Nous allons maintenant créer une socket. Donc, en créant le socket, nous devons mentionner que nous avons la victoire que les choses affichées seront la famille d'adresses. Nous utiliserons donc IPV4 et la déployabilité de cette manière. Deuxième moins la prise, prise serrée. Nous voulons donc créer ce socket de flux qui soit fiable et des protocoles de communication bêta carbone. Nous le donnons donc sous forme de zéros, avant qu'il ne puisse être 0. Pour ce flux, il utilise TCP, vous pouvez utiliser Xero. Un autre. Une fois que nous appelons la fonction socket, elle retournera le descripteur de la socket. Maintenant, ce descripteur va utiliser pour différentes fonctions à venir. Il s'agit de la fonction de liaison ou l'écouteur ainsi que de la fonction de sortie. Maintenant, vous pouvez voir ce que nous faisons ici. Nous remplissons cette structure. Alors, quel est cet ensemble d'ADD ? J'ai dit plus tôt qu'il s'agissait du type socket ADD. Comme nous l'avons vu, lorsque nous appelons cela est requis, tout ce code est requis dans la fonction de liaison. Puisque dans la fonction de liaison, nous allons passer sur la socket pour être lié. Numéro de port et adresse IP particuliers. Le numéro de port et l'adresse IP doivent être indiqués dans la structure. Cette structure est le serveur ADD ou d'autres types, chaussette ADD ou le fer de soulignement en remplissant un par un. Je vous ai dit que cette adresse, que nous donnons à un serveur pour écouter se lier à cette adresse, est ce que je vous ai expliqué en détail lors de la session précédente. Laissez-moi céder, AJOUTER et souligner. Cela signifie que vous voulez que la barre latérale affiche toutes les adresses IP de la victime, différentes interfaces réseau. Bien que les utilisateurs utilisent la terre pour récupérer Internet , l'adresse IP de ce terrain décidera de l'endroit où il peut se lier. Et si l'utilisateur utilise le Wi-Fi, c' est-à-dire que différentes interfaces réseau ont une adresse IP différente dense sur cette adresse IP sur la même machine hôte. Ensuite, le deuxième argument nous mentionnons l'image de la machine virtuelle. J'ai parlé de la famille. Donc, lorsque vous leur donnez ce collecteur, IPV4, ce sera de cette manière. Ensuite, nous donnons la quantité de numéro de port à la récupération de me donner quatre fois cinq. Nous pouvons donner n'importe quel numéro de port supérieur à 1024, moins de six par 535, car un jusqu'à 1024 il est utilisé. Et bien qu'après 10 ans, vous pouvez donner n'importe quel numéro de port. Donc, quel que soit le numéro de port, vous vous souviendrez toujours du côté client. Vous devez attribuer le même numéro de port car les clients se connecteront au même numéro de port où la barre latérale est à moi à toute la structure. Une fois qu'elle est remplie, vous appellerez à nouveau la fonction bind. Vous allez passer le premier argument car le SOC est ce que c'est un descripteur que vous, qui est celui qu'il a été écrit lorsque vous appelez la fonction socket. Il s'agit d'un descripteur de socket. Ici, nous passons les messages et le deuxième argument humain est la structure que vous avez peut-être senti que nous passons ici. Et ensuite, la troisième est la taille de celle-ci. Infos. Maintenant, de cette manière, en achetant la fonction maintenant, la barre latérale est liée au numéro de port et à l'adresse IP. Maintenant, ce que font les auditeurs dans le cas de la leçon , de la fonction leçon, vous passez le premier argument comme descripteur de la socket. Et le deuxième argument, numéro, connexion client, que vous souhaitez conserver dans q, puisque nous ne voulons pas que vous ne voulez pas qu' aucune connexion client reste dans q, alors nous pouvons simplement écrire 0 ou nous pouvons écrivez une si vous voulez une connexion, elle sera dans une connexion automatique et un cube. C'est ainsi que cela fonctionne. Ensuite, cette leçon signifie qu'il écoute, écoute la connexion de la ligne Connect. C'est ça. Ensuite, nous appellerons la fonction de sortie pour quitter la connexion de l'usine. Cela signifie barres, encore une fois ce descripteur de socket qui a été renvoyé par la fonction socket. Deuxièmement, nous allons passer cette dose frappée, si détruite comme vide, qu'elle se remplira réellement. Une fois que nous allons sur la fonction de sortie. Ici, tous les détails relatifs au client seront remplis. Toutes les informations relatives à cette ligne. Quelle est l' adresse IP, qu'est-ce que c'est, numéro de port auquel elle a mappé et tous les détails qu'elle sera renseignée lorsque nous appellerons la fonction de sortie et la taille de celle-ci. C'est pourquoi nous passons simplement comme il est. Et puis il est en cours d'exécution, puis vous trouvez un nouveau descripteur de socket. Donc ce descripteur ainsi que ce descriptif, les deux sont différents. Je vous ai dit qu'il est encore différent car ce descripteur peut être utilisé pour accepter d'autres demandes de connexion de cette ligne. Nous ne voulons rien bloquer. Ce Socrate s'est donc engagé à écouter et à accepter la connexion. Dans ce cas. Nous voulons également une opération simultanée de lecture et d'écriture. Une fois que c'est le cas, il accepte une connexion du client. Nous voulons que la lecture et l'écriture soient à recherche et nous ne voulons pas que ce soit le cas, mais par conséquent, une autre charge, le script d'une autre socket ou descriptif sera au milieu GET et nous le garderons, engagez en lisant, en écrivant celui-ci et celui-ci. Qu'est-ce qui accepte une autre connexion client. J'espère que vous avez compris cela et ceci et cela se fera. Il a dit un jour qu'il accepte cette connexion du client et il est capable de recevoir le message du client. Donc, votre descripteur lui-même, nous mentionnerons ici, si cela réussit, nous seuls pouvons le recevoir ici. Donc, si la condition est mentionnée et que ce client V droit va obtenir, vous avez mentionné ce socket descriptif. Puisque nous devons recevoir sur ce socket lui-même , tout ce que le client a dit sera collecté sur ce tampon. Ensuite, nous afficherons ce message. memset est ensuite mis en mémoire tampon sur 0. Et c'est ainsi qu' après tout, je perds la prise. Cela dépend donc de votre utilisation. Vous avez ce qu'on appelle la même fonction ici. Si vous souhaitez que certaines informations de moteur soient transmises à partir du serveur, vous pouvez appeler la même fonction. Et si vous voulez une connexion répétitive, vous pouvez également mettre une boucle ici. Et vous pouvez écrire la condition que si quelqu'un qui marche à la condition que son utilisateur donne cela et sort de la boucle et ne sait pas que Nieto au-delà veut une communication en fonction de l'utilisation. Encore une fois, modifiez le programme. Il s'agit d'un programme simple et je reçois le message du décor végétal. J'appelle cette fonction de réception même si je peux l'appeler une fonction sinusoïdale si je voulais envoyer des données. C'est la même chose. Donc, la fonction de sécurité et appellera à partir de cette ligne pour que les clients puissent envoyer un message. Même chez les clients que nous appelons, nous pouvons appeler la fonction de réception, mais nous serons là. Je vous montre comment recevoir le message du site client. Le côté client va envoyer ce message. Maintenant, nous fermons la prise de cette manière. C'est ainsi que cela se produit. J'espère que vous avez compris chaque ligne de code et cela trouvera plus que Z car nous avons fait toutes les conditions préalables avant de commencer le programme. Nous avons vu toutes les fonctions en détail. On s'enfonce avec le code. Je vous demande de passer par là si vous n'êtes pas allé parce que j'ai répété toutes les choses ici, mais en expliquant plus en détail cette séance elle-même ne vous a pas fait comprendre. Maintenant, allons-y. 11. Socket Session7: Avant cela, vous voulez régler les poumons. J'ai donc déjà dit la bûche à deuxièmement, pour augmenter la taille, je l'ai encore fait. Si vous souhaitez appartenir ici sur la console, le réglage de la paroisse est requis. Cliquez sur Nouveau, puis vous devez vérifier ces verrous. Une fois que vous aurez vérifié ces verrous, vous verrez cet écran bien-aimé que j'ai déjà vérifié, donc je reçois cet écran de verrouillage maintenant je suis comment construire un programme. Cliquez sur. Laissez-moi le nettoyer parce que je l'ai déjà essayé une seconde. OK, cliquez maintenant sur Build, puis compilez ce fichier. Vous pouvez donc voir ici qu'il n' y a pas de flèches dans TO, côté serveur. Maintenant, faisons-nous un lien. Maintenant, je voulais vous montrer une chose importante ici. Je n'ai pas fait probabilité de réglage dans la configuration de l'administration de l'eau, ce que je vous ai mentionné lors de la session précédente que nous sommes censés faire pour les fenêtres. Je n'ai pas fini parce que je voulais vous montrer l'erreur. Et après le, vous verrez là quand nous l'avons exécuté, il y aura un lien dedans. Et bien sûr, vous pouvez voir que je n'ai fait aucun réglage. Je ne suis lié à aucune bibliothèque, alors vous comprendrez comment y remédier, comment la lier. C'est une raison pour laquelle je ne l'ai pas réparé plus tôt, de sorte que si je l'avais réparé, vous n'auriez pas touché mon cas. Je n'aurais pas eu d'erreur. Dans votre cas. Vous ne l'auriez pas eu et je ne veux pas que ce soit en retard. C'est une raison pour laquelle je n'ai rien fait. Je veux que vous compreniez tout et comment tout arranger. Maintenant, lions le graphique bleu. Construisons et exécutons maintenant. Je devrais avoir une erreur de liaison. Oui, je voulais lier l'en-tête. Vous pouvez le voir ici dans la console ou sur le blog lui-même. Vous pouvez voir une référence non définie aux startups technologiques WSS ou aux fonctions que nous appelons eau. Lorsque ces démarrages, le Lewis a commencé puis tout. Il obtient une référence non définie. Pourquoi ? Parce que je vous l'ai déjà dit pour le système d'exploitation Windows et que vous piquez sur la programmation du socket ainsi que sur le client. Puisque nous utilisons différentes fonctions, nous utilisons les fonctions définies dans la bibliothèque Wind Socket. Dans notre projet, nous devons établir un lien avec cette bibliothèque non linéaire. Parce que nous avons créé cette bibliothèque pour que le temps d'exécution de la liaison se produise. liaison se produit toujours chaque fois que vous exécutez le code, seule la définition de la fonction ne rejetterait pas la renommée aucune déclaration ou lorsque vous appelez vos fonctions. au moment de la compilation, il sera compilé avec succès car je n'ai vérifié aucune des déclarations qui n'avaient été reçues du fichier d'en-tête que vous avez mentionné. Vous avez obtenu toutes les déclarations pour vous, il n'y a pas eu d'erreur. Mais dans le temps de liaison, il verra la définition. Cela, vous ne le liez pas. Vous obtiendrez la référence non définie en exécutant. Voyons maintenant comment corriger ces erreurs. Bien sûr, je ne le suis pas. J'ai supprimé ces paramètres, créé des paramètres d'environnement, donc je vais vous montrer à partir de zéro. Pour ça. Je vous ai montré comment faire cela. Les deux paramètres du compilateur, vos liens d'accès ou l'étape des paramètres, bien, vous avez d' autres options de lien ici. Vous devez donner à cette bibliothèque, ces bibliothèques pour le socket Windows 32 bits. C'est donc pour cela. Vous avez l'utilisateur lorsque Socket Library et donc vous réfléchissez et donnez-moi moins Lusaka, puis enregistrez simplement ces paramètres. Maintenant, lorsque vous compilez votre code, il doit être compilé avec succès. Maintenant, il est dit que voir ce message, nous avons donné ce nom pour les connexions entrantes. Nous avons donné ce message ici, en fait, à l'écoute des connexions entrantes. Tellement triste, qu'est-ce qui écoute ? Maintenant ? Nous sommes censés écrire ce code. J'ai donc dit que la charge de travail était en cours. Maintenant, rappelez-vous toujours que nous devons renforcer le code du serveur, puis grimper car le serveur est nécessaire n'était pas sans port serveur si vous exécutez directement pour poser problème car il s' agit d'un Un client sera, je m'intègre. Ça devrait toujours être, faut toujours se lancer. Et ici, je vais vous montrer, puisque je vous ai dit que nous verrons la communication entre le serveur et le client. Ici, vous pouvez l'utiliser, vous pouvez exécuter votre serveur sur une machine hôte, c'est-à-dire un ordinateur portable et apprendre la langue. Et un autre ordinateur portable qui est une autre machine hôte qui est des hôtes distants. Et vous pouvez faire la communication de prise que j'ai. Je vais vous montrer comment faire la communication client du serveur socket une seule machine. Supposons que vous n'ayez qu'une seule machine, alors comment vous pouvez l'exécuter. C'est donc également possible. C'est que vous devez effectuer certains paramètres, comment créer un processus serveur et un processus client. Dans ce projet, nous utilisons cet IDE, que nous utilisons est l'IDE de bloc de code. Nous avons déjà créé un projet pour le soudain que dans cet IDE de bloc. Pour que le client puisse maintenant créer un projet pour le client, nous ne pouvons pas créer le projet. Le client dans cet ID lui-même. Qu'est-ce que c'est dans cet ID de bloc de code. Dans ce cas, il est dit que nous ne pouvons pas effacer car à un moment donné, on a besoin de cet ID de bloc de code. Nous pouvons exécuter un seul programme. Nous ne pouvons pas exécuter deux projets. Je veux dire que nous ne pouvons pas exécuter mes projets de pique-niques en une seule fois, dans le même cas sur le bloc avant. Si vous souhaitez que plusieurs projets soient exécutés, vous devez lancer plusieurs instances de journal alimentaire. s'agit donc que d'un seul cas. C'est que j'ai cliqué une fois sur l' ID de bloc de code et j'ai obtenu cette instance. Et ici, j'ai créé un projet possible, donc je ne peux pas créer une autre ligne POC de projet et même instance sur l'ID de coordonnée et faire la communication pour cela. Vous devez les créer dans l'ID de bloc de code. Créez une autre instance de Woodblock ID et vous devez écrire du code bogué, puis vous devez faire la communication entre eux. conséquent, par défaut, vous ne pourrez pas créer la deuxième instance du code mole sodique sera à l' heure de l'événement. Donc, en cliquant sur le mot amour à faire pour obtenir une nouvelle instance, vous n'obtiendrez pas. Parce que, par défaut, les paramètres sont définis de cette manière que chaque fois qu'il lancera le même ID de bloc de code. Mais maintenant, nous devons exécuter le serveur et le client dans différents blocs de bois indépendants depuis la boucle ascendante. Donc, pour cela, vous devez effectuer les paramètres. J'ai déjà fait les paramètres dans mon cas, mais pour votre cas, je vous ai montré avant d'écrire le programme serveur comme double-clic sur l'ID du bloc de code. Et vous devez faire ces réglages. Et puis vous écrivez le programme serveur, ce que je n'ai pas encore fait, quel physio ? Ensuite, vous compilez le code, vous l'exécutez, puis la deuxième fois et vous cliquez sur Code Block ID, vous recevrez la deuxième instance proposée et vous aurez raison, ce code de ligne, les paramètres que je vous montre. N'oubliez pas que vous êtes censé le faire avant de les écrire. Inhibiteur cérébral, affectation complète, nouveau double-clic sur l'ID du bloc de code. Vous devez effectuer les réglages. Alors, comment faire ça ? Nous obtenons l' instance multiple de Woodblock ID. Allez donc dans Paramètres. Ensuite, il faut aller à l'eau et admettre que je l'ai déjà fait. C'est une raison. Déjà les changements qui existent déjà, ce que j'ai fait. Bien que votre cas, vous pouvez voir ici autoriser une seule instance en cours d'exécution qui se trouve ici. La case à cocher sera cochée. Il sera vérifié. Par défaut, il est coché. Et je l'ai déjà dévérifié. Parce que j'ai plusieurs instances. Par défaut, cette case à cocher sera cochée pour autoriser une seule instance en cours d'exécution. Et c'est une raison à chaque fois que vous lancez l'ID de bloc de code, comme obtenir la même chose pour le lancement du bloc. Comme cela est vérifié par défaut, je l'ai décoché car je veux que plusieurs instances soient également utilisées dans une instance déjà en cours d'exécution qui est également vérifiée par défaut. Il suffit donc de décocher que vous plutôt que de décocher l'align sur l' instance man running ainsi que d' utiliser déjà en cours d'exécution, non coché les deux, ce que j'ai déjà fait là où vous je ne peux pas voir cette coche là-dessus. Ces paramètres sont obligatoires et vérifiez-les , puis cliquez sur OK. Je vais maintenant créer un autre projet pour le client. Et vous pouvez voir maintenant que cela me permettra de créer un autre projet. J'avais encore double-cliqué sur l'ID de bloc de code, j'ai eu les nouveaux projets. Vous pouvez donc voir qu'un projet est celui que je n'ai pas écrit le programme serveur, et c'est l'autre projet. Cela m'a donc permis de créer une autre instance du bois et non du projet, c'est permis. Il s'agit donc d'une instance de la coordonnée où j' ai lancé une autre instance sur le codon en double-cliquant dessus, je n'ai pas été enregistrée. instance en cours d'exécution. Lancement de l'État. Non. Le projet pour le client. Cliquez donc sur Fichier, sélectionnez Nouveau projet. Cliquez sur les étapes de l'application de la console en tant qu'équipe, juste pour que vous ayez sélectionné deux cplusplus dentaires. Cliquez sur Suivant, donnez la programmation de socket. Cliquez ensuite sur Suivant. Cliquez sur. Il videra un programme HelloWorld par défaut pour vous. J'ai donc déjà écrit un programme de contour et je copierai simplement le collage ici et je vous explique les instructions ligne par ligne. J'ai collé une copie ici. codage côté client est un CDF à connecter simplement. Nous verrons dans une seconde. Permettez-moi d'augmenter la taille de la police pour que vous puissiez vous voir. Permettez-moi de terminer cela afin que vous puissiez voir plus clairement les instructions que je mentionne. C'est ce programme de ligne. Nous avions cependant mentionné les dossiers de crédit. Depuis que nous utilisons, nous le faisons pour le système d'exploitation Windows. Encore une fois, la fonction principale que vous connaissez, c'est un point d'entrée pour commencer l'exécution de n'importe quel programme. Vous devez vider le code ici lui-même. Même si vous pouvez créer votre fonction modulo, vous pouvez simplement définir toutes ces choses dans une fonction et vous pouvez appeler cette fonction, mais toujours à partir de la fonction moyenne sur new, vous devez vous demander la fonction simplement année que j'ai fait le code. Je sais que vous êtes peut-être un métal. Ces données WAC, que je vous ai déjà dit, cette structure est un deuxième argument dans cette startup WSS, nous savons ce que WSS est empilé. Il est utilisé pour les initialiser et Socket Library. Dans le premier argument, le programme indique la version de la bibliothèque Wind Socket si vous souhaitez l'utiliser. Puisque nous devons l'utiliser, voulais utiliser la version 2, j'ai été la bibliothèque de socket. Il s'agit d'un argument faux et deuxième argument est la structure. Cette fonction de démarrage remplit cette structure dans laquelle Devin Socket Library pourrait passer. Je vais envoyer la communication au sujet d'une information politique. Il enverra à ce programme combien de sockets peuvent être créés dans d'autres informations, cette structure peut être alimentée lorsque nous appelons le démarrage bluesy. Cette structure, nous avons déclaré, déclaré la variable de la structure de cette manière, les données WSU. Maintenant, le deuxième objet que nous créons est pour la socket. Depuis moi, on m'appellerait créer une socket côté client et donc VR dans sa création disponible là-dessus. Ensuite, nous créons la vidéo avant cela mais aussi la structure car nous transmettrons les détails de la commande. Nous avons été l'adresse IP et le numéro de port auquel le client doit se connecter. Il doit se connecter au serveur. Nous devons donc écrire cela sur l'adresse IP. Donc, dans notre cas, puisque nous exécutons le serveur et le client sur la même machine hôte. Par conséquent, le côté client doit se connecter au boost local car dans l'hôte local signifie sur la même machine hôte, la même machine était la même machine car la clientèle a besoin d'être exécutée en surface. Et comme nous exécutons sept et un client sur la même machine hôte, nous pouvons donc simplement donner l'adresse IP sur la même machine hôte qui est une échappatoire, qui veut machine. Le client n'est pas un serveur d'entrée exécutant qu'il a dit vous devez fournir le même numéro de port que celui que le serveur écoute. Maintenant, je vais suivre la fonction socket. Nous l'avons eu. Je pense que le premier argument que je vous ai déjà dit, c'est une famille d' adresses Internet. Et le second est que le flux de type socket. La vapeur est un type de prise peu fiable et tous les détails sur la prise que nous avions vus dans la prise de courant, quelles sont les caractéristiques ? Cette prise génétique est fiable. L'un, d'accord, est fiable. Tout ce que j'ai mentionné. Ensuite, le troisième est un protocole de communication et stream utilise une valeur par défaut de carte PCB est 0. Maintenant, cette socket va renvoyer un descripteur à cette socket. descripteur que vous avez obtenu sera lorsque vous avez acheté la fonction parent, vous trouverez des pauses. En argument de cela, ce descripteur de socket passé humain par opposition à l'argument. Alors, que font ces trois choses ? Encore une fois, vous le souhaitez, car le client se connectera au serveur. Les clients sont donc enclins à remplir tous ces détails sur l'adresse IP et le numéro de port. Puisque je vous ai déjà dit ce serveur et ce client, nous voulons communiquer par tout cela étant donné la même machine hôte dans le seul ordinateur portable, pente à un seul pont lui-même. Nous ne voulons pas héberger à distance, nous ne voulons pas d'ordinateurs portables, clients cérébraux et d'apprentissage. Je vais être indifférent. Différents ordinateurs portables savent que nous faisons de la programmation et même machine hôte et de la machine enregistrée elle-même et, par conséquent, quelle adresse IP vous allez donner du côté de la ligne, simplement, nous voulons le diabète de la hôte local car l'hôte local d'ajout du client exécute serveurs sources exécutant quanta sur le même hôte. Lorsque vous êtes donné de cette manière, signifie qu'il n'y a pas de bords arrière. Je vous ai expliqué que lors de la session précédente, cela signifie qu'il se connectera à l'adresse IP de l'hôte local des nouvelles locales, quel que soit le problème que nous devons résoudre. Et puis nous donnons cette famille d'adresses et depuis qu'on a un aperçu de ce qui écoute le numéro de port 45555 et depo, nous donnons le même numéro de port. Si vous aviez mentionné un numéro de port différent. Vous n'avez pas mentionné ce numéro de port ici, il est indiqué côté client. Ensuite, nous appelons la fonction connect. Fonction Connect. Nous passons ce premier argument en tant que descripteur de socket, ce que nous avons obtenu de là. Et puis dans ce descripteur de socket, Ensuite, nous passons cette structure, puis la taille de celle-ci, juste du côté client, nous devons appeler la fonction de déconnexion. Et une fois que le client appelle la fonction Connect, et une fois que le serveur accepte cette connexion , la communication entre le serveur client peut se produire. communication à Broadway peut se produire. Donc, je suis simplement en train de l'envoyer. Vous pouvez également appeler la fonction de réception. Mais j'avais rendu la tâche très facile en l' appelant de chaque côté. Donc j'envoie cette carte mentale, envoie cette fonction bonjour vous fou et transmet ce descriptif lui-même, puis je la passe tampon, j'ai initialisé à la valeur qui est bonjour. Et puis la taille de la dette. Ensuite, je ferme le nettoyage de la prise que nous avons vu. C'est le cas. Pour fermer le socket dans le cas de Windows, nous appelons ces deux éléments à des ressources. Donc, toutes ces choses sont nécessaires pour fermer la connexion du socket dans le cas de Windows, je vous ai expliqué quel est le but du nettoyage et c' est ainsi que c'est tout le site de la gamme de produits. . Ou laissez-moi compiler ce code maintenant cliquez sur Build, le parent, pas de flèches. Donc je pense que je devrais obtenir l'erreur de liaison parce que je n'ai pas terminé configuration de liaison pour lier à la bibliothèque lorsque 32, votre build et votre exécution. Je l'ai déjà fait, c'est la raison. Juste une seconde. Permettez-moi de croiser le règlement des cadres à damier. Ok, cette bibliothèque est déjà ajoutée. En fait, nous créons la nouvelle instance et nous créons la nouvelle instance. Ces paramètres ne l'ont déjà pas été. C'est donc une raison pour laquelle vous ne l'avez pas lié. OK ? Vous avez donc obtenu une sortie ici. Cette seconde, ce client, nous avons le client de lancement. Maintenant, vous pouvez voir que nous avons reçu le tout premier message est connecté au serveur. Ce message s'affiche une fois que le côté client envoie la connexion, et une fois que le serveur accepte une connexion , ce message est et une fois que le serveur accepte une connexion , uniquement connecté au serveur. Donc, ce qui se passe est tellement accepté la connexion. Vous avez donc reçu ce tout premier message du Royaume-Uni. Neuf, il est relié à son côté. Ensuite, du côté d' un client, nous passons ce message Bonjour. Le client envoie ce message bonjour et nous avons toutes les fonctions de réception du serveur. Il devrait donc quitter ce message et l'imprimer. Ce message que nous avons, nous envoyons en fait du côté client. Nous envoyons cela comme Hello et un côté incontournable. Permettez-moi d'ouvrir le code côté serveur. Il s'agit d'un code côté serveur. Il reçoit le message du client, donc il est collecté sur la boucle et nous l'imprimons sur la cytométrie du flanc, voir la console côté serveur. Ainsi, lorsque vous voyez la console côté serveur, vous verrez qu' elle indique que le client est déconnecté. Il dit que le client net dit bonjour les sources diminuent plus rapidement. Message de bonjour que nous avons vu et qui est reçu côté serveur. Et parce que j'ai dit que le virus l'a fait, mais en effet ce message sur la console, comme Lion dit Bonjour, voyez dans le service que j'ai été embauché. Quoi qu'il ait reçu ici, il a été connecté à Buffalo, puis il est en train d'imprimer. Voici le client voit quelle offre décroît. Bonjour Dakota, il est imprimé de ce côté. C'est la raison pour laquelle tu as eu bonjour. C'est ainsi que vous avez peut-être vu comment le client est connecté au serveur. Et je pense que passer une connexion au serveur, c'est l'accepter. Ensuite, le client envoie le message et écrit le message envoyé. Et puis nous sommes en train de recevoir ce message disant que cette ligne disait bonjour, puis nous nous déconnectons du client, a été déconnecté parce que nous avons appelé. Cela dépend de la façon dont vous avez exécuté l'édition, du codage de votre programme. Depuis que nous avons fermé le socket de ce client, il a donc été déconnecté. Mais rappelez-vous toujours que vous ne pouvez pas fermer le socket du serveur et dire à un analyste que vous ne fermez pas le socket, le client car les serveurs de l'un ou l'autre auquel tous les clients se connecteront. Il ne semble pas être un démon. C'est ainsi que nous avons vu la communication du socket trottoir neuf pour le système d'exploitation Windows. Je dirai que vous avez acheté disparu. Vous l'avez compris et il avait vu l'exécution de la conférence. J'en ai fini pour l'instant. Merci. Merci beaucoup. 12. Socket Session8 ProgramExecution ServerClientCommunication Linux C Part1: Bienvenue dans cette nouvelle session de programmation de socket pour Linux. Donc ici, dans cette session, j'ai écrit le code pour le côté système Linux de notre programmation de socket client et nous allons également l'exécuter. Au cours de la session précédente, nous avons écrit le programme pour le serveur ainsi que le client en utilisant C plus que les fenêtres. Et nous avons vu comment créer un nouveau projet dans l'EDI, dans l'ID de bloc pour Windows et plusieurs configurations sont nécessaires avant, accompagnent et exécutent le programme pour la cybercriminalité. Nous l'avons vu et nous l' avons exécuté. Nous n'avons pas fait la ligne de trottoir de communication. Nous allons maintenant programmer un serveur, un socket client sous Linux, système VM Linux en langage C, et nous allons également l'exécuter avant la session. Nous avons également constaté une différence de mortalité ou non dans les méthodes pour Windows et Linux. Et puis à une différence très minimale et définissez les changements nécessaires pour le circuit. Nous avons passé en revue la présentation et nous vous expliquons. Consultez les conseils pratiques. Commençons par ici. La configuration requise pour la première fois consiste à vous assurer que vous n'avez pas de système d' index valide dans votre cas. Et comme nous allons faire le programme, vous n'avez donc pas besoin d' installer d'ID de bloc de code. Donc, ici même, il existe des façons d'écrire votre programme soit si vous souhaitez l'exécuter à l'aide de la fenêtre Dui, vous pouvez l'installer. J'ai utilisé une simple invite de commande. Donc quelles autres choses sont disponibles par défaut sous Linux ou avez-vous commencé vous-même, je n'ai pas besoin d'installer quoi que ce soit nécessaire car déjà pour Linux, si vous parlez directement des linéaires, vous pouvez accéder à l'invite de commandes. Si GCC est installé, par défaut, vous obtiendrez ce GCC. Gcc est un outil pour compiler votre programme. Et vous pouvez également exécuter n'importe quelle sortie que vous obtiendrez. Vous pouvez directement l'exécuter. Le support, cette sortie, cela a été créé. Je vais donc vous montrer chaque étape par étape. Également. Dans mon cas, je vous ai montré ces machines puisque j'ai cet ordinateur portable est configuré pour la machine Windows, je n'en ai pas assez. Mais qui vous fait expliquer ? qui avez-vous écrit le code ? Serveur, client ou Linux ? J'ai également installé sur mon système Windows lui-même ou la machine virtuelle Linux s'est rencontrée. Par conséquent, nous intégrons, vous savez peut-être qu'il s'agit d'une machine virtuelle. Si vous avez un système d'exploitation différent ici, dans mon cas, j'ai Windows, mais je veux aussi écrire le programme pour le Lena. Donc, si vous voulez la compilation croisée, si vous devez un système d'exploitation différent que vous voulez, vous devez écrire le programme. Vous pouvez installer directement VirtualBox. Et à partir de là, vous pouvez écrire, vous pouvez télécharger l'image ISO, ISO pour le système d'exploitation que vous souhaitez. Alors pourquoi mon cas je voulais pour le système Linux, car je voulais vous expliquer le serveur socket, la communication du code client et l'exécution sous Linux. Et j'ai déjà un rapport Windows. J'ai téléchargé ISO pour Lena présent, ce n'est rien de tout ce qui est nécessaire. Vous disposez d'un système Linux. Vous pouvez écrire directement le code. Les communistes vont décider du système Hat Linux. J'ai des fenêtres. Mais pour exécuter le programme pour les maigres, je dois installer VirtualBox. Considérez simplement que vous avez la machine Linux. Ainsi, même si vous installez VirtualBox, si vous n'avez pas Linux, vous pouvez télécharger l'image pour cela. Et si vous avez configuré votre machine en mode linéaire, c'est simple. Alors ici aussi, considérez que vous avez un abdomen pour la machine Linux. Vous aurez des déterminants par défaut. Voyons comment y aller. Voyons donc l'aperçu, ce que vous allez couvrir au cours de cette session. Il existe différentes méthodes de socket d'un autre serveur à répéter et à tracer. Il crée une prise. Côté serveur, vous devez créer un socket, puis vous devez le trouver. Toutes ces méthodes sont donc communes à celles des fenêtres, juste au cas où vous verrez qu'il s'agit d' une méthode qui n'est pas présente dans le cas de Vénus, c' est-à-dire wx, une fonction de données WSS. Cette fonction était morte sur NAEP ou le code machine Windows ainsi que pour le client parierait. Alina, j'ai déjà mentionné que WAS startup, fonction de démarrage qui est nécessaire pour initialiser qui ont été ciblées bibliothèque n'est pas présente dans cas de cette machine Linux qui est seulement le différence. Et ces autres fonctions sont presque identiques. Juste cette partie qui déconnecte celle de Nina. La syntaxe sera différente et il y a une certaine différence structurelle. Je vais donc vous montrer. Si le socket client utilise à nouveau, la même chose que la fonction de données WAS n'est pas présente, ce qui est spécifique à Windows. Il s'agit de créer un socket, se connecter au serveur et recevoir des données , puis de se déconnecter. Ensuite, les méthodes et les données structurées spécifiques, nouvelles, spécifiques à Linnaeus connaissent la fonction WSS Startup utilisant Linux, ce que je vous ai dit que cela a été fait sous Windows, puis la fonction de fermeture est également différent. Dans le cas de Linux, les Soviétiques doivent simplement appeler la fonction close. Mais dans le cas de Windows, nous avons vu que nous devons appeler socket. Et c'est aussi comme Nina nécessaire pour déconnecter la prise. Donc, toute cette fonction n'existait que pour la plate-forme Windows. Dans le cas de Linux, nous avons une fonction de divulgation. Ensuite, le type de descripteur de socket renvoyé par l'appel de la fonction socket est différent. Donc ici, lorsque nous appelons la fonction socket dans le serveur et le client, donc il retournera descripteur de socket dans la fenêtre étant basaltes, c'était le même type de descripteur de socket est différent en cas de retour linéaire de type. Et dans ce cas, souvent Windows, il renvoie socket. Ici, lorsque nous écrirons le programme, vous comprendrez que je viens de faire ou ce que vous avez fait, je viens de les écrire tous pour vous. Ensuite, il y en a différents. Ce type de structure d'adresse de socket est différent s'il y a des différences légèrement serrées. Les mêmes méthodes ou types de données existent. Spécifique à Linux ? Puisque ce type de prise ou de destruction est différent. Donc ce stock, vous savez que cette structure d'adresse de socket, ce que nous faisons ici, vous la remplissez avec les détails de l'adresse IP ainsi que le numéro de port. Puisque c'est différent. Par conséquent, vous savez que l'idée de produit ou de service appelle la fonction textée. Ainsi, sauf par une fonction, nous utilisons cet archétype, cette structure. Ainsi, étant donné que le type est différent, le, cela changera également dans la fonction de sortie pour le côté client que nous appelons Connect. Encore une fois, nous utilisons cette structure d'adresse de socket. Ce sera donc différent. Le type sera différent sur un ID de socket a été frappé stupide, il utilise la fonction ionique. Ainsi, même en les voyant diviser l' écriture du programme, ne vous inquiétez pas, alors en ce qui concerne le fichier d'en-tête, les fichiers d'en-tête requis pour Linux seront différents de ceux des fenêtres. Maintenant, cette autre différence, commençons maintenant à écrire le programme ou la programmation du code serveur et du port client sous Linux. Encore une fois, vous êtes déjà sorti, je suppose que vous avez un système Linux ici et que vous êtes sur le point d'écrire un code. Je l'ai donc rendu flexible. Je couvre chaque chose ici. Même si vous écrivez le processus de programmation pour la programmation de socket de l'application pour Windows, vous pouvez référencer la session précédente et si vous possédez la machine Linux, vous pouvez enregistrer la session. Donc pour Windows a également couvert la programmation et l'exécution et quatre unités et la publication, de sorte que vous serez en 14 à écrire le code pour machine différente ou que vous soyez à l'aise avec ça. C'est donc la raison pour laquelle j'ai mentionné une différence et le code vous fait comprendre la différence dans le QI. Commençons. Je vais ouvrir ma dominante du dominant et nous allons écrire le code. Ouvrons. Laissez-moi juste écrire leur personnel. OK. C'est ma dominante de la VM. Laissez-moi y retourner. Donc je suppose que vous voulez, si vous démarrez la machine Linux de conseil de code, vous connaissez les commandes. C'est comme si vous êtes à l'aise avec Windows, vous pouvez aller à la session audio. Et si c'est le cas, vous voulez écrire un programme pour Linux, vous devez être conscient des choses de base comme ls. Que fait Ls ? Par conséquent, sous Linux, nous utilisons principalement cette invite de commande. C'est notre terminal. En fait, je l'ai ouvert. Vous pouvez voir le nom dominant. Et j'ai juste, vous devriez connaître les commandes de base dans Linux si vous voulez écrire le code ici, si vous voulez comprendre comment revenir au répertoire précédent ou afficher ce que Einstein nous a dit en particulier le répertoire. Donc je le suis, et vous pouvez voir mon PWD, c'est ma partie qui est mon nom. Et j'ai mis à jour le nom du dossier par programmation de socket MKDIR. Et ici, si je le fais et que j'ai déjà écrit le code pour socket, peux coordonner le socket plusieurs tribunaux. Je vais donc ouvrir ce code pour vous sous cette forme. Nous sommes deux. Au lieu d'avoir des fichiers C, Monsieur le Président, je vais passer par ces fenêtres et je vais vous montrer le fichier C. Je vais vous montrer toutes les instructions utilisées. C'est presque similaire à celui de la fenêtre, juste un peu différent c'est que je ne le fais pas, je ne veux pas commencer à écrire Internet toutes les instructions neuf par neuf, donc j'ai déjà écrit ici. Je ne veux pas perdre de temps à l'écrire. Vous en aurez déjà marre car presque tout est similaire à cette différence de fonction spécifique, différence structurée et 100 défenses différentes. C'est Ls. Pour commencer par le code du serveur, permettez-moi d'ouvrir ce dossier. Dans le point de mise à jour du serveur SOC c. Maintenant, comment ouvrir ce fichier en utilisant cette dominante, je peux ouvrir directement par VI à propos de la mise à jour point c. Je peux ouvrir directement ce fichier de cette manière. Vous pouvez voir qu'il s'agit du code du serveur. Je vais vous faire expliquer. Même si vous voulez voir à travers le bloc-notes, vous pouvez aller dans le dossier et vous pouvez passer programmation de votre socket que j'ai créée et c'est en quelque sorte vertical. Vous pouvez l'ouvrir directement. Soit vous pouvez ouvrir de cette manière. C'est le même pot que vous pouvez vous référer qui domine chaque pied. Donc, vous pouvez y aller ? Je pense que oui. Qu'est-ce que l'humeur, comment peux-tu avoir ? C'est donc plus clair en fait, vous pouvez le voir ici, alors laissez-moi l'ouvrir dans le bloc-notes lui-même. Ce document lui-même. Tout d'abord, je vais vous expliquer comment le compiler pour mes élèves. Voir le programme, ces fichiers d'en-tête que je vous ai déjà mentionnés. Il s'agit tout d'abord du code serveur pour les Lena. On m'a déjà dit la différence entre les fichiers d'en-tête pour Linux et Windows et la session précédente. Si vous ne l'avez pas traversé, vous devriez le parcourir afin d' avoir plus de guillemets simples. Ce sont donc les fichiers cachés utilisés pour Linux, quelle programmation de socket. Vous pouvez effectuer des vérifications croisées plus tard. Ensuite. Il s'agit d'une fonction principale. Ici même, nous aurons une fonction principale où nous avons écrit notre code. Je vous ai donc dit que cette fonction principale est un point d'entrée pour commencer. C'est un point d'entrée pour démarrer une exécution de votre programme. Ainsi, chaque fois que votre programme est exécuté, cela arrive très rapidement dans cette fonction principale et quoi que ce soit ou vous écrirez ici, sera exécuté ligne par ligne. Voyons donc ce que nous avons fait. Vous pouvez donc voir ici qu'il y a deux variables par nom serveur et client, et j'ai initialisé à 0. Son type de données est entier. C'est une différence en fait un post qui est ici. Vous pouvez voir ici, il s'agit de variables spécifiques aux fournisseurs de données Linux , serveur et le client sont utilisés ici même. Il s'agit donc du descripteur de socket. Donc je vous l'ai dit dans cette présentation, puis nous appelons la fonction socket le descripteur de socket que les visiteurs ont renvoyés. Son type de données est différent. Il est de type numérique dans le cas sous Linux, mais dans le cas de Windows, il l'avait vu comme de leurs types socket, SOC majuscule, socket QE2. J'espère donc que vous parcourez cette session si vous souhaitez être spécifique à Windows. C'est donc un dollar. Ce sont les descripteurs. Donc, sur moi, mon descripteur de poignée de prise seulement. Vous fonctionnerez sur le tube de prise et vous appelez les différentes fonctions telles que l'achat, écoute, la sortie dans la carte. Vous allez utiliser ce descripteur de socket Adobe Cause pour le serveur. Ce type de données est différent. Encore une fois, la deuxième chose ici, je vous ai dit que l'adresse de la structure de socket est différente. Vous pouvez donc voir ici que nous écrivons struct. C'est ce type de structure. Nous sommes en train de créer la variable de celle-ci. C'est le serveur ADD à ce milliard de dollars américains. C'est également spécifique à Linux. C'est différent si vous comparez à celui des fenêtres. Maintenant, ici, cette structure, elle est remplie, elle compte tellement de membres. Donc je vous ai dit que mes démembrés sont utilisés dans le parce que ce qui s'est passé du côté de notre côté, je vous ai dit que nous en avons deux. Si c'est le cas, la communication entre le serveur et le client doit avoir lieu. Nous devons payer l' achat de la barre latérale. Si vous écrivez le code pour le serveur, pour la barre latérale, il doit être lié à une adresse IP et un numéro de port particuliers. Une fois que nous avons lié cela, cela signifie que, dans ce cas, le client souhaite se connecter au serveur. Comment je comprends réellement ce que nous avons eu, c'est le serveur en pensant simplement avec lui, avec l'adresse IP où il achète aussi, ainsi que le numéro de port. Donc, la raison pour laquelle nous le devons, chaque fois que nous écrivons le serveur ou que vous devez le lier à l' adresse IP et aux numéros de port. Le client intime souhaite se connecter au serveur. Il se connectera, il coulera avec la même adresse IP et le même numéro de port pour couper communiquer avec elle afin que ce soit ici ce que nous, les instructeurs, l'adresse du serveur, nous remplissons la structure à laquelle l'adresse IP et le numéro de port auquel le serveur se liera. Par conséquent, cette fonction le nomme comme je l'ai expliqué en détail dans la session audio également. Et j'ai obtenu les méthodes qui sont utilisées pour les unités et pour les fenêtres avec discussion chantant avec un port, vous avez également passé par la session. Maintenant. Vous pouvez voir que j'ai écrit ceci IN ADD ou n'importe quel trait de soulignement et vous l'avez expliqué la même chose en fait s'il est interdit pour Windows aussi, que fait-il ? Cela signifie qu'il est lié à toutes les interfaces réseau présentes sur la machine hôte sur laquelle le serveur est en cours d'exécution. Par conséquent, cela signifie que si vous êtes connecté à la terre, il aura une adresse IP différente. Il s'agit donc d'une interface réseau. Si vous êtes connecté au Wi-Fi, adresse IP sera différente et il s'agit d'interfaces réseau différentes. Ainsi, votre barre latérale se liera à l'une des étranges interfaces réseau, quelle que soit votre utilisation sur votre machine, sagesse de cette machine laquelle vous exécutez notre serveur. Cela signifie donc que pour que nous donnions cette variable, nous l' attribuons. Ensuite, nous ajoutons l'écriture des numéros de port. Tous les temps se battent contre ce numéro de port. Vous pouvez donc utiliser tous les nombres supérieurs 102465 par trois pi car 1024 il est déjà occupé. Donc, si vous utilisez un numéro de port supérieur à 1024, quel que soit le numéro de port de la barre latérale à laquelle il sera lié. Pour l'état d'esprit thrombus, vous devez vous connecter au même numéro de port. Et c'est une famille d'adresse familiale pour nourrissons. Donc, votre air dedans. Donc, puisque nous utilisons IPv4, par défaut, par défaut, si j'ai souligné ion et c' est la fonction de liaison. Nous utilisons. Ceci, nous analysons ce côté disque descripteur de la prise oculaire. Et ensuite, nous passons à travers cette structure que nous avons échouée. Vous devez construire cette structure ici. Nous transmettons votre typographie TO à ce type et nous mettons à jour cela. Nous mentionnons ensuite la taille de cette structure. Ensuite, nous appelons la fonction d'écoute. Nous pouvons donc voir que les mêmes fonctions existent pour Linux également que les différences de type qu'il renvoie dans le menu de poignée de socket de type. Encore une fois, il écoutera en passant cette poignée de socket ici dans le premier argument. Dans le second, le nombre de numéros souhaités dans la file d'attente pour les demandes de connexion pour différentes lignes. Donc ici, depuis 0, je ne veux pas qu'aucune autre connexion client soit dans la file d'attente, donc j'ai écrit 0. Vous pouvez modifier votre code en fonction de l' exigence de poésie humaine et de l'action du client pour être dans le tube. La version actuelle est exécutée. Vous donnez encore, donnez ce numéro. Vous allez écouter. Ecoutez signifie qu'il écoutera cette prise. Ensuite, nous imprimons le message côte à côte qui écoute les connexions entrantes. 13. Socket Session8 ProgramExecution ServerClientCommunication Linux C Part2: Je déclare une variable. Je suis, c'est un type de chaîne de caractères car il s'agit d'un tableau de caractères. Ici, dans la fonction de sortie, j'appelle la fonction de sortie. Une fois que le site d' un petit pain a été refusé, envoyez une demande au serveur. Il l'acceptera et signifiait qu'il est accepté. Ensuite, peu importe ce qui sera posté, nous passerons la même poignée de prise que celle que nous avons obtenue de cette prise. Et la structure ici, c'est ici que nous initialisons comme nulle et nulle. Ici, il retournera l'application descriptive. Ici, ce sera différent de celui du droit. Comme je vous l'ai également mentionné, la poignée de prise qui est renvoyée de la fonction socket. Il est utilisé pour qu' il soit engagé dans l'acceptation de la connexion du côté client. Alors que cette poignée de socket, qui est renvoyée à l'exception de celle-ci, sera engagée dans des opérations de lecture et d' écriture à partir du réseau, le client. Les deux seront donc différents. Une seule utilisation dans le but différent et elles sont également différentes. Donc ce descripteur de socket, que nous obtenons, sera lié, peut-être avoir les données du client. Donc, même si vous pouvez utiliser de manière indépendante, vous êtes ici et je vais lire. client utilise donc le même type de carte que celui que nous avons vu depuis Windows. Le client envoie un message, dites bonjour. Et puis c'est l'ensemble de l'étrange. Il sera tourné, il acceptera la connexion de Dr. Lines, et il lira les essais de tout ce que le client lui a envoyé. Nous appelons donc la fonction. Ici, nous utilisons la fonction de lecture. Si le descriptif client et ce tampon. Ici, nous avons déjà déclaré cette variable et quel que soit le sens de l'ensemble du client sera collecté dans ce tampon, et c'est la taille que vous mentionnez. J'ai ensuite imprimé cette boucle. C'est le message qui a décliné, descendant. Puis mm m'a dit, mais en le faisant 00 cette boucle. Maintenant, je ferme le socket qui est là pour le client, puis le client est déconnecté. Vous comprenez donc ce que nous attribuons à l'exception de la fonction, ce qu'il retourne sera lourd lié au socket de fond de panier. Après l'utilisation, je le déconnecte. C'est ce que nous faisons. Donc, la plupart des choses sont similaires. Est-ce que la machine Prado Windows que nous avons vue ? Il s'agit du code côté serveur. Maintenant. Désolé. Oh, désolé. C'est un vieux préjugé pour par-dessus bord. Permettez-moi d'ouvrir leur dominante. Oui. C'est le code, j' espère que vous connaissez ces commandes, ce qui signifie que si vous voulez ouvrir à travers la gomme à partir de, vous pouvez utiliser cet éditeur VIM, et vous pouvez ouvrir le fichier. Ces linéaires arrivent donc. Je suppose que vous savez peut-être si vous écrivez le programme sous Linux. Et toutes les méthodes que je vous ai expliquées qui sont spécifiques aux serveurs, nous allons donc le compiler, mais voyons comment compiler ce code. Nous devons utiliser ce GCC, donc je n'ai rien installé sur cette machine Linux. Donc vraiment ce GCC, c'est un outil de compilation de base pour compiler le programme C, directement disponible chaque fois que vous installez. Chaque fois que vous possédez une machine Linux, vous aurez ce GCC de base, agréable à l'air pour pouvoir compiler le code. Gcc, vous pouvez compiler le code C. Je n'ai pas tout écrit, il suffit de taper le fichier gcc, que je vous ai montré quel code serveur, comment le compiler dans la commande de GCC, puis ce nom du fichier et de la cheville. Quand je le fais, vous pouvez voir qu'il a créé un point indiquant que c'est le mien. Après avoir compilé le code qui avait été obtenu. Maintenant, pour le lancer, je ne vais tout simplement pas courir. Maintenant, permettez-moi de vous montrer le code client. Maintenant aussi une chose que je vous ai expliquée chaque fois que vous devez faire la programmation de socket entre le serveur et le client, comment avez-vous fait quoi ? La machine Windows. Si vous utilisez des vidéos, l'IDE Woodblock, je pensais que vous ne le feriez pas dans cet IDE, Wooden Block ID, vous savez, vous ne pouvez pas créer 22 decks, un projet et une ligne de produits. Et vous ne pouvez pas faire la communication entre eux si vous le souhaitez sur la même machine hôte, si vous souhaitez effectuer cette communication entre le serveur et le client sur la même machine hôte, alors c'est la même machine. Ensuite, vous devez ouvrir la coïncidence de l'ID Woodblock dans le cas de Windows, je l'ai fait, je vous ai montré qu'il s'ouvre vers le haut à l'instance, ID de bloc maladroit, car par défaut, il ne permet pas et nous l'avons créé, ouvert à l'instance de Woodblock ID. Une instance, nous avons créé un projet, centré ou trottoir, et dans une autre instance de bloc de code, nous sommes créés à ce code de modèle objet de ligne. Ensuite, nous avons fait l'obligation de prise. Là encore, je vais vous montrer ces communications client du serveur socket sur la même machine de Lena. Comment j'utilise ce GCC, j'utilise cette dominante pour compiler mon code pour l'exécuter. Par conséquent, vous n'avez pas besoin d'effectuer de configuration. Vous venez d'ouvrir un autre terminal. Il s'agit d'une dominante dans laquelle vous apprendrez le code du serveur, compilerez le code pour le serveur et l'exécuterez. Et une autre dominante, nous allons courir la garde. Une fois que nous aurons compilé le code client, vous rencontrerez un autre terminal. Vous serez donc trop court ou ouvert à différents communistes différents dans lesquels vous utiliserez un serveur si vous devriez toujours exécuter le serveur. Donc, latéralement devrait toujours être fausse car c'est le Damon principal. Des clients différents et différents. Ainsi, cela peut se connecter à elle. Si vous n'exécutez pas de solveur, que vous exécutez le nœud client, ce n'est pas possible, vous ne devriez pas, cela ne fonctionnera pas. Triste, qu'est-ce qui devrait courir en premier ? Parce que le client qui se connecte au serveur, nous aurons besoin d'un arrêt de communication pour fonctionner en quelque sorte que je n'avais pas prévu. Nous aurons ouvert en nominale. Je vais vous montrer que vous me laissez faire des recherches. Oui. Vous allez l'exécuter à l'intérieur de notre code dans un autre terminal que je boucle. Nous verrons les messages, le port client, puis nous allons compiler et ensuite vous exécuterez le code client. Mais une fois le code du serveur, comprenez simplement qu' un terminal exécutera Server Core et l'autre dominant, vous auriez fini de code incliné. Permettez-moi d'ouvrir une autre dominante. Dominante. Vous avez cette option. Maintenant, vous pouvez voir qu'un autre terminal est, c'est un autre terminal qui est là. Je vais passer en revue le code. Est-ce que le client code. Voyons maintenant le code client. Nous avons déjà vu le code du serveur. Encore une fois, le code client est très court en fait. Vous pouvez voir ici, est-ce que cela correspond à ce code de ligne, ceci, laissez-moi le maximiser. Il s'agit uniquement du code client. Tout d'abord, les fichiers d'en-tête que vous devez écrire pour la dette seront différents de ceux des fenêtres. Il s'agit des fichiers d'en-tête du socket de la machine Linux. Encore une fois, la fonction principale qui est un point d'entrée. Maintenant, au cas où je vous disais, nous devons simplement créer une prise et nous devons appeler la fonction connect. Et puis nous n'avons pas écrit d'opération. Ce n'est que la différence. n'est que la petite carte pour le client par rapport à celle du servo. Encore une fois, nous allons écrire un site de Salk. Il s'agit de la poignée de la socket, qui est de type entier différent de celui des fenêtres. Ici encore, l'adresse de socket qui est également défensive et de type de données. Maintenant, nous appelons la fonction socket. Donc ici, rappelez-vous toujours chaque fois que nous devons faire la communication entre serveur et le client doit avoir le même deuxième argument qui est transmis dans le socket est le type de socket. Vous devez avoir le même type de prise. Il peut être diffusé en continu sur couches de flux de type datagramme. En utilisant le protocole de communication TCP, il est fiable, alors que le datagramme utilise UDP, ce qui n'est pas pertinent. Donc la plupart du temps, il utilise TCP sur moi. Par conséquent, les deux côtés service généralement lorsque vous créez une socket, ce type doit être du type flux. Et si vous utilisez ici le flux. Les deux devraient donc avoir le même type. un ou l'autre à l'extrême sont l'un ou l'autre doit avoir type de datagramme afin de venir en ordre des communications vers le ductile, ce qui signifie la colonisation dans les plantes. Nous appelons donc la fonction socket. Tout d'abord, nous passons la famille d'adresses Internet, puis le dipôle du flux de socket et Lindsey Nicole, le protocole de communication. Ensuite, cela retournera une poignée à la prise de ligne sombre. Vous êtes en train de créer le produit socket. recul. Il le fera. J'ai modifié ce nom de variable. J'ai donc écrit le nom de sel parce qu'il va se connecter au serveur. Il y a une raison, mais ce socket que nous créons pour eux. Client. Encore une fois, la destruction, c'est ainsi que je vous ai dit la structure que vous devez remplir. Tout d'abord, côté client écrira l'adresse IP du serveur, qui est la même. Cette adresse IP doit être la même que celle à laquelle le serveur est lié, et le numéro de port devrait également voir pourquoi j'ai donné 127$ No.1 et vous expliquer. C'est ce qu'on appelle une adresse de boucle arrière car puisque nous le sommes, nous voulons faire la communication dans le même système. Dans ce même système, mon serveur est en cours d'exécution et mon client aussi j'aurai fini de manger. Je le suis. Par conséquent, comme il s'agit du même écho système cette année, cela signifie qu'il signale l'adresse IP locale, qui est morte sur la machine hôte. Dans cette adresse IP locale de Lochia, le serveur est uniquement en cours d'exécution. Par conséquent, nous ne faisons que mentionner 127$ le point un. Cela signifie qu'il faut signaler l'adresse locale de cette machine hôte, car nous savons que notre serveur est en cours d'exécution sur cette machine hôte locale. Cela signifie qu'il passe à la même adresse IP où le serveur est en cours d'exécution. Et le numéro de port est la raison pour laquelle cinq fois, quatre fois cinq. Car ici, nous avons acheté le serveur à ce numéro de port. Si vous aviez des classeurs, j'ai acheté deux numéros de téléphone différents, disons 9994 fois neuf, alors vous en auriez donné quatre fois neuf. Quel que soit le numéro de port auquel vous, votre serveur se lie, le côté client doit se connecter au même numéro de port. C'est tout ce que nous remplissons ici dans cette structure. C'est ça. Et puis, lorsque nous appelons la fonction connect, nous transmettrons le premier argument est le handle de la socket, que nous retournons de cette valeur appelant la fonction socket et cette structure que nous avons remplie l'adresse IP et le numéro de port, puis la taille. Ensuite, nous écrivons du côté client connecté au serveur, car une fois la connexion terminée, ce message sera imprimé du côté client, disant connecté à ce client est connecté au solveur. C'est ce que nous avons fait, puisque dans notre programme, nous envoyons le message. Nous écrivons le message du côté client et nous allons le lire et donc le site du serveur. Quel message nous envoyons, nous envoyons simplement bonjour. Ici. Nous sommes en train d'initialiser cette chaîne qui est un tableau de caractères avec ce bonjour. Et laissez-moi appeler la bonne fonction. Le premier argument est traité des sédiments sortant de la poignée de socket, puis le second argument en tant que tampon, que nous initialisons à cette valeur. Nous voulons que cette valeur soit transmise au message du serveur pour qu'elle soit transmise à la longueur argentée de celui-ci. Par conséquent, nous appelons la bonne fonction par la bonne fonction. En mentionnant dans ce socket, nous devons envoyer ce tampon de message qui est bonjour au serveur du côté client. Il s'agit d'un côté client. Ensuite, nous imprimons le message. Ce message est envoyé pour appeler cette rapière, mal dépensé le message sur le site client. Mais cette colonne vertébrale, puis nous fermons cette poignée, puis la prise est fermée. Il s'agit donc du code du site client. Vous pouvez donc voir ce tout prêt à l'emploi, simple et z. Maintenant, j'ai ouvert un autre terminal. Allons à la substance. Nous devons toujours exécuter un code serveur plus rapide pour que nous l'exécutions. Je vais donc ouvrir. J'ai exécuté le code de serveur mural post-hoc. Comment l'exécuter en mentionnant simplement pourquoi j'ai mentionné cette barre oblique, car cela signifie que je suis dans ce répertoire actuel du dossier, et que je vais l'exécuter. Un point out, dot out est présent dans ce dossier lui-même. Donc, lorsque je cours, j' obtiendrai le côté serveur, ce message qui écoute la connexion entrante. Maintenant, le serveur est à l'écoute. Nous devons maintenant exécuter notre code client sur un mètre. Une fois que nous avons exécuté le code , le client doit se connecter à ce client de maintenance déconnecté. Ensuite, le client doit envoyer un message au serveur et nous allons lire du côté serveur, vous verrez un message de bienvenue indiquant que 0,09$ sera affiché sur le terminal client. Et vous pouvez voir côte à côte si ce message est également lu et imprimé côté serveur en service, je peux maintenant voir sur l'écoute de la connexion entrante, lançons le client code également. Laissez-moi donc ouvrir l'accord dominant. Donc, je vais compiler ce code client simplement par cette fonction, DCC et le nom du fichier. Lorsque vous exécutez, vous ne verrez qu'un point sortant qui correspond la sortie produite après la compilation. Maintenant, nous devrions l'exécuter. Vous pouvez donc voir ici que vous voulez que le message du côté client connecté au message de plusieurs fournisseurs envoyé avec des tampons s'affiche lorsque le client envoie un message au serveur, alors ce message arrive. Nous allons donc ouvrir le service. Je ne nous ai pas permis de voir si le message est arrivé et si les informations ont été mises à jour. Oui, vous pouvez voir après avoir écouté la connexion entrante, ce mode unique que nous pouvons jouer en toute sécurité sur la ligne de site du serveur connectée. Le client dit que le tampon est bonjour. Du côté client, ce que je veux dire vient de vous demander, vous pouvez imprimer la ligne dit mais, mais c'est bonjour. Et puis nous avons obtenu la fonction déconnectée de cela aussi à partir d'ici. C'est ce que nous faisons. Vous pouvez voir comment se déroule cette communication. C'est donc juste que j' envoie le message du client et je lis le message, j'écris le message du client et je le lis côté serveur. Vous pouvez donc écrire et lire sur le serveur ainsi que sur le client. Vous pouvez avoir n'importe quelle communication bidirectionnelle à l'allèle. Donc, vous ne vous contentez pas de vous expliquer la syntaxe que j' ai écrite du côté client et que j'ai lue côté serveur. Vous pouvez donc faire Weiss comme moi et vous pouvez écrire et lire et faire le chèque. Le chat d'un serveur à l'autre. Je le suis aussi. C'est donc ce que nous avons vu, comment cette obligation de socket explique comment le message est envoyé et ce que toutes les fonctions, la structure différente, la différence d' en-tête mobile ne sont pas. Permettez-moi de passer à la seconde. Permettez-moi, je reviendrai à ma présentation qui sera faite en voyant toutes ces choses qui sont là. Nous avons fini avec le serveur, la programmation du socket client. Nous avons fait en langage C ce que Linux et nous l'avons également exécuté. J'en ai fini pour l'instant. Merci. Merci beaucoup. 14. Socket Session8 ProgramExecution ServerClientCommunication Linux C++: Bienvenue dans cette nouvelle session quatre, et cetera, programmation de socket client et voyez le sang divisé les noix trimestrielles avec son exécution. Avant cette session, nous avons passé par la session pour le serveur, programmation de socket client en langage C ou Linux avec son exécution. Nous avons donc écrit le code C pour la ligne de trottoir de socket, et nous avons fait sa communication pendant que le système Linux, nous avons vu comment le client et serveur communiquent entre eux. Maintenant, nous allons plonger le code C plus plus et le système d'exploitation Linux, et nous effectuerons une programmation de socket pour la cybercriminalité n'est pas une grande différence. Le compilateur sera différent. Nous avons donc vu que nous avons utilisé sous Linux pour compiler le programme C. Vous avez utilisé GCC, mais nous utiliserons sur GPS car ce n' est que la différence. Et certaines fonctions que nous appellerons quart d' entrée et de sortie seront différentes au sein toutes les fonctions liées à la prise seront les mêmes. Ce n'est pas une grande différence. Nous pouvons donc rapidement passer par la session telle qu'elle est presque, presque similaire à l'ensemble de directives que j'ai programmées en C sous Linux. Juste en haut de la porte de Jens. Trois fonctions, les fonctions d' appel seront différentes à mesure qu'elles sont utilisées, il est fluide d'entrer sur la console. Voyons voir. Juste pour vous montrer, comme si vous pouviez appliquer la stratégie de codage, vous pouvez coder pour cplusplus seul le compilateur deux changera. Passons très rapidement à travers la session en détail. Si vous voulez passer par la session précédente que j'avais expliqué en détail le même programme et voir ce que Linux. Je vais donc être moche parce que c'est simplement les choses répétitives sur la différence minimale, différence biologique et certaines fonctions d'appel différentes. Encore une fois, la même chose ici pour les méthodes de socket de serveur pour linéaire, puisque nous allons effectuer cela, que ces fonctions distinctes ne créent pas la socket, liant à toutes les choses si vous comparer avec la machine Windows sera similaire, mais une fonction n'est pas présente. Pour Linux. Autrement dit, bien que WAC démarre et lorsque nous nous déconnectons du socket, la syntaxe serait la différence par rapport à celle fenêtres pour le CC plus plus. mêmes fonctionnalités sont qu'il n' y a pas de différence au Texas. Ce n'est pas différent et la programmation des sockets utilisant C et C plus plus sur aucun des deux outils de compilateur et certaines fonctions d' appel liées à l'entrée et à la sortie sont différentes. Nous compilerons le code à l'aide de g plus ici en cas d'écriture, lorsque vous aurez fini d'écrire le code et cplusplus. Et ensuite, il l'exécutera. Maintenant, près des méthodes de socket client. La même chose que je dois faire en tant que startup n'est pas présente. Cette syntaxe est différente de celle d'avoir la même syntaxe pour C et C plus plus changera. La même chose avec le Dr a été abordée lors de la session précédente. C'est pour Linux, sont les méthodes et les données structurées qui ne sont pas une fonction versus Startup utilisée dans le cas de Linux, comme je vous l'ai dit maintenant. Ensuite, la chose suivante, perdre des fonctions différentes IW ou leur perdre le socket. Nous appelons la fonction que par rapport aux fenêtres qui ne collaient pas Macondo dans la limite WE malade. C'est donc différent au cas où si vous comparez avec Linux, je vous verrai. C'est similaire, c'est le même. Et un descripteur de socket dipôle, il est piloté par l'appel de la fonction socket est écrit. Il s'agit donc d'une différence spécifique à Venus car pour Windows, le descripteur de socket, puis les enregistrements retournent, la fonction socket sera différente de celle de Linux. Nous avons vu que lors de la session précédente dans la programmation c pour le système Linux nous appelons la fonction socket la socket. Et puis nous avons obtenu, le type de socket handle est de type entier dans le cas de Linux, mais dans le cas de Windows, nous l'avons vu comme d'autres types proposés en capital SOC Katie, c'est une différence. Mais pour CC plus, plus les mêmes fonctionnalités sont mortes. Il n'y a aucun changement à ce sujet Et puis la structure désorganisée ou rayée est différente. Encore une fois, spécifique à la structure d'adresse Linux sera utilisée pour la lecture du socket et révélera vraiment le diabète. Et le numéro de port qui dipôle cette prise et restructuré est différent dans le cas de Vénus par rapport à Windows. Un animal de compagnie fonctionne également comme disant pour CC plus plus. Ensuite, puisque cette édition est structurée comme un autre type de structure décidée, utilise l'indifférence ou le dysfonctionnement. Et donc leur site Web portico appelle accidentellement la fonction d'acceptation. Nous utiliserons cette structure d'adresses. Il n'avait donc pas le type différent de celui de leurs fenêtres de médecin. Donc, le client que nous appelons connect. Encore une fois, incline, je vais être appelé fonction Connect inclinée. Ils ont dit que le DO structuré est utilisé au moment où la dette est différente de celle des fenêtres. Encore une fois, le fichier d'en-tête, si vous parlez en termes de synthèse spécifiquement pas si mort. Polynices était que la programmation des sockets est différente de celle des fichiers d'en-tête. Sélections de fenêtres. Je suis juste en train de me précipiter dans cette session parce que c' est une session libératrice. Je veux juste vous montrer si vous compilez code cplusplus et Linux et quels tuners combinateurs ont utilisé. Et certains en-têtes, puisque nous appelons des fonctions pour entrer et afficher, cet appel associé sera différent. Donc Socrate. Toutes les fonctions disent que c' est revenu là-dessus. Si vous comparez C et C plus. Commençons donc à écrire le code. Laissez-nous passer par cette discussion. programmation de socket cplusplus Cetera gland avec exécution d' identités peut ne pas exister. Accédez au système d'exploitation Linux. Ensuite, je montrerai ce que nous utiliserons. Bienvenue vital pour écrire ce code en C plus n2. Combinez-le. Passons à la suivante. Donc, je suis en train d'avoir ou quand Linux ici. Deuxièmement, permettez-moi de donner le premier. Ici. Je vais ouvrir la dominante. Puisque nous le serons, nous deviendrons en écrivant le code dans la dominante. Vous savez, je vous ai déjà dit la session précédente que dans l'autre tendance à la programmation ou à la communication sur socket sous Linux, je vous ai déjà dit que nous avions le fourniture d'utilisation de déterminants. Donc, si vous avez cette configuration de Linux, je vais vous montrer et avoir, vous savez, les commandes de base utilisées, ou le Linux qui est très important. Nous avons donc déjà abordé les commandes du WC et brièvement lors de la session précédente. Nous allons écrire le code dominant. Laissez-moi ouvrir ça. Il est lancé une minute. haute qualité a créé la salle de conférence du dossier, C plus plus. On dirait presque vouloir une défense fonctionnelle. C'est merveilleux. Et vous pouvez maintenant voir le fichier que j'ai créé, j'ai déjà écrit le code afin d'éviter le temps nécessaire à la rédaction de chaque instruction. J'ai donc déjà expliqué chaque instruction et session précédente qui n'avaient pas écrit le code en C et B. Ensuite, il est dit passer en revue si vous voulez aller en profondeur. Donc oui, juste pour comprendre quel outil est utilisé pour compiler le code C plus plus et quelles différences minimales elles ne sont pas dans la programmation des sockets, mais quand vous appelez la console pour lire et écrivez sur la console, juste cette fonction sera différente, alors que les fonctions socket, comme on le voit ici, ce fichier que vous avez en langage C plus plus aura l' extension point cpp que dans le Vedas engagés résoudre le langage C lorsque vous écrivez le code C, nous avions vu que l'extension n' était pas vue, mais dans le cas du siège, la meilleure extension est point CPP. Vous le savez peut-être si vous avez effectué la partie de codage C plus plus, laissez-nous y aller. Maintenant. Si vous voyez que, si vous comparez le langage C, si vous êtes moins compétitif en langage C physique, toutes les choses sont identiques. Juste une différence de ce fichier d' en-tête que j'ai inclus dans C plus plus parce que vous connaissez peut-être ce flux I O. Il s'agit de l'en-tête de l'affichage et de la saisie achetés spécifiques sur la console. Ainsi, comme nous l'avons vu, qui s'engage sur le langage C, nous utilisons stdio.h. Ici. Vous pouvez simplement supprimer ce stdio.h qui n'est pas nécessaire. Laissez-moi juste venir ici. Cela n'est pas obligatoire. Car ici, vous allez appeler les fonctions affichées sur la console. Vous appelez le code de la fonction. Vous savez donc peut-être que lorsque vous écrivez le code et cplusplus affiche un message sur la console, nous appelons la fonction cout qui est acquise en sortant le message sur la console. Donc, cette unité de message est sortie sur la console. Et c'est le cas, j'ai utilisé l'espace de noms std. Vous pouvez voir que j'ai ajouté l'école en utilisant l'espace de noms std car cette bibliothèque de modèles standard std est que cette fonction est définie. Par conséquent, lorsque vous avez deux C plus plus, vous devez mentionner dans cet espace de noms sur ces fonctions. Nous devons donc tout d'abord mentionner cet espace de noms et ensuite nous pouvons voir, si vous ne mentionnez pas cet espace de noms et utilisez l'espace de noms std, il l'écrira ici. Ensuite, vous pouvez simplement l'écrire à l'école comme solution. Donc ces fonctions, et je suppose que vous êtes maintenant dans le code C plus plus. Si vous entrez dans le cplusplus, coordonnez la lumière qui est la fonction de base pour l'afficher. Je pense que cette année et donne les commentaires sur la console que nous utilisons C. Dans notre cas, nous ne donnons aucune contribution sur le DevCloud. Je n'appelle pas la fonction pour entrer sur le je fais appel à moi. Voyez-vous, j'apporterai leur message sur la console pour qu'il y ait la seule différence ici, c'est que les fonctions liées au sulfate sont identiques. Donc, si vous constatez qu'il s'agit d'une coordination cirrhotique, vous exécutez votre programme. L'exécution s'est arrêtée à partir de cette fonction principale. Donc, quelle que soit la ligne d'instruction, nous allons donc plonger dans cette fonction principale. Il sera exécuté neuf par neuf. Il s'agit de la même session répétitive, juste pour vous mentionner la différence entre C et C plus, plus. Je suis, j'ai donné cette séance très rapidement. La gourde ici. Comme je vous l'ai dit, vous appelez la fonction triée utilisée pour créer la prise et plusieurs tribunaux appartenant à la famille d'entrée Internet. Il s'agit du type de socket par lequel il est diffusé en continu. Nous avons donc acheté la communication serveur et client. La prise est créée et les deux côtés. Le type doit donc être le même si vous voulez que la communication entre le serveur et le client ait un flux type neuf points ou vous devriez avoir ce guide génétique. Stream est à un type de responsabilité de la socket ici. Et le troisième est une valeur par défaut du protocole de communication est 0. Il renvoie un descripteur de type in vivo. Cela se voit donc dans le cas de la séquence cn à chaque fois la région qui est utilisée pour la programmation de socket en langage C et aussi pour la maladie, mais pas de différence que sur moi, cette couleur bleue l'affichage et entrée de la console que seules les fonctions que nous appellerons sont différents au cas où je serais C et C plus plus dans ce fichier d' en-tête que nous devons inclure. Et puis c'est la structure d'adresse dans laquelle la route latérale, nous devrions la lier à l'adresse IP et numéro de port afin que lorsque le client souhaite se connecter à elle, il puisse synchroniser la même adresse IP adresse et numéro de port. Nous avons donc rempli cette structure côté serveur avec cette valeur. Et les numéros de ce conseil sont dévalorisés. Cela signifie que c'est le cas, qu'il peut se lier sur les interfaces réseau. J'ai donc expliqué que vous plongez dans une section précédente. Et puis les numéros de sport, quel que soit le nombre que vous donnez, devraient être supérieurs à 10 à quatre, car il est encore 1024 occupé. Et vous pouvez utiliser plus de 102465535. Ensuite, vous appelez la fonction bind pour lier une sorte de socket à l'adresse IP et aux l'adresse IP et numéros de port uniquement pour repérer données d' amorçage pour une période de deux ans ici. Ensuite, nous écoutons ceci, je préfère écouter ce logiciel. C'est le nombre de numéros qu'il décrira la connexion qui innoverait. Ensuite, appeler la fonction de sortie à partir de l'ensemble de notre site acceptera tout message provenant d'une connexion, disons, accepter n'importe quelle connexion de ligne du côté ligne, cette fonction de sortie de phobie appelant décline et la connexion sera alors acceptée par le serveur. Et puis la version filtrée et un autre descripteur de football qui est également de type int. Ce descripteur de socket, si vous n'avez pas écrit vocal tout patient et le descripteur de socket, qu'il ne renvoie pas, c'est que vous vous engagez avec une connexion Dark Line. C'est ce qui se passe. Et puis cela dit, évitez ce que nous faisons. Nous envoyons le message du client. C'est ainsi que j'ai dit que nous allons le lire. Ce message sera collecté. Nous appelons la fonction de lecture. Ce message sera relié à de petits fonds qui fonctionnent simplement, louent. Vous pouvez voir ici que la différence n'est pas seulement ce qu'ils impriment. Nous appelons donc ici la fonction CL, c'est-à-dire C plus, plus C plus plus langage. Et pourtant, en affichant sur les conseillers C out et cette dentine double guillemets quel que soit le message que vous donnez, vous n'avez pas besoin de donner le spécificateur de format et C plus plus. Et puis vous devez donner dans cet index la sortie, puis le tampon, puis mettre fin à la rougeur. Vous souhaitez qu'il apparaisse sur ce message sur la nouvelle ligne. Donc cela deviendra entrant sur le nouveau cas United sur le CV donne une barre oblique n. Mais au cas où je verrai bénir, bénissez-moi, donnez END l et l qui apparaît en train de faire un message de saut de ligne Windows pour venir dans la nouvelle ligne. Et vous le pouvez encore, donc quoi que vous puissiez voir ici, où que nous voulions afficher Animals huit au conseil, nous appelons la dette C0, C0, C0 sur ces dettes différentes par rapport au langage C, il y a deux lignes de code supplémentaire qui est haché, y compris iostream. Vous devez inclure ce fichier d'en-tête et hachage, puis utiliser l'espace de noms std, car dans STD sur moi, le PDG est mort. C'est ça. Et puis je vous ai dit, puisque nous allons jouer, a dit Laissez-le communiquer avec le client. C plus plus dans la même machine, fait des écrous dans la même machine. Dans ce cas. Si vous ouvrez le nombre total de minutes dans un terminal et que vous obtenez cela comme un terminal dominant et un terminal, nous exécuterons le code pour les événements ou biais de réduction du code est compilé et exécuté dans une position dominante dans un autre terminal. Une fois le code client compilé, nous l'exécuterons. Et une autre dominante, l' eau totale sur eux devrait circuler dans des terminaux différents et ensuite ils communiqueront entre eux. Compilons ce code. Donc ici, c'est différent dans C plus plus, nous utiliserons l'outil de compilation g plus plus. Dans le cas du langage C, lorsque nous avons creusé du code C, nous avons utilisé GCC. Mais bienvenue pour trouver le code C plus plus. Nous ne pouvons pas compiler le GCC car outil de compilation GCC est utilisé pour combiner malaise, nazi et bénédiction. C plus plus est un module complémentaire sur scène. Tu n'as qu'à aller plus. Il s'agit d'un outil de compilation. Vous pouvez compiler le code C ainsi que le code C plus plus car il s'agit d'une version évolutive, d'une douzaine de versions mises à niveau, celle du langage C. Ainsi, le langage C ainsi que le langage C Plus Plus peuvent devenir classés par g plus plus Y2 à l'extérieur n'est pas autoritaire, mais c'est-à-dire que vous ne pouvez pas combiner votre code C plus plus à l'aide de ce GCC. Vous devez utiliser g plus plus. Ainsi, puisque C plus prend en charge, prend en charge le langage C seul, donc par G que nous utilisons D plus plus, vous pouvez combiner le code C et C plus, mais vice versa n'est pas possible. d'autres termes, vous ne pouvez pas utiliser GCC pour combiner le code C plus plus. Par conséquent, nous utiliserons g plus plus, puis nous serons bilingues ou utiliserons l'étudiant. Donc encore une fois, il va créer le fichier et j'ai eu avant de l'exécuter. Voyons également le code hiérarchique qui a ouvert une nouvelle dominante ou les accidents que j'ai totalement massacrés courent dans une dominante différente. Maintenant. Maintenant, depuis que je vous l'ai dit, le code C plus, que nous allons plonger, a vraiment l'extension pour piloter l' extension vers CPP, ont fait les changements pour appeler l'entrée et la sortie fonction. Vous pouvez donc voir ici, encore une fois, que nous avons, c'est un code très court en une minute. Vous remarquerez que le code client est très petit par rapport à celui de la salve par rapport aux fonctions de socket comme disant plus aqueous plus quatre langage C sur le support appelant l'entrée et vous êtes la fonction désordonnée pour afficher le message sur le pied de la console n'est que différent. Par conséquent, nous devons inclure ce fichier d'en-tête, iostream. Vous devez écrire cet espace de noms std. Donc, les mêmes choses hantées de repos rose voient en rapport avec la prise. Vous appelez donc la fonction socket dans le client. Et nous disons que c'est que nous mentionnons ici, donc la même syntaxe, nous la remplissons avec l'adresse IP. Donc je vous ai dit que 127$ No.1 n'est pas une adresse Lubeck qui, puisque nous m' ajoutons , je vous demande si la communication se produise dans la même machine. Profondeur ou le serveur et le client sont exécutés sur la même machine. Par conséquent, cela signifie qu'une adresse Lubeck signifie que cette carte est à l' adresse IP locale, hôte local. Ips souffrait certainement de diabète sur l'hôte local car nous savons que dans le serveur hôte local est également en cours d'exécution, donc il rétablira l' adresse IP de l'hôte local. Ensuite, nous mentionnons le numéro de port côté serveur, quel que soit le numéro que nous donnons qui ne correspond pas au côté client, il devrait être coulé vers le même numéro de carte pour se connecter à la cellule. Et l'adresse IP doit également être la même. Ensuite, nous continuons à la fonction de déconnexion. La barre V est cette structure ici. Ensuite, nous écrivons le message depuis le site client. Le même message que j'ai écrit. Vous pouvez donc voir que le V, V que j'affiche au conseil est différent puisque nous faisons ce codage en C plus plus. J'utilise donc le PDG qui s'affiche sur la console et N dollars avaient l'habitude leur envoyer un message le jour de la nouvelle nuit. Une fois encore. Voyez comment il est utilisé ici pour imprimer le message, quel que soit le client que nous finissons sur la console. Ces différences sur aucune des fonctions liées aux sockets sont les mêmes. Vous pouvez donc comprendre que si vous connaissez la même langue, vous pouvez démarrer C plus plus rien de différence n'est que dans les fonctions liées au socket sur le nucléaire affichent le message sur la console, le C plus plus parce qu' il y a ce code. Mais ça fait caca sur la console. Trouvons le tableau ici. Voici donc l'outil de combinaison j'utilise GPS car, comme je vous l'ai dit, nous ne pouvons pas utiliser GCC pour compiler le code pour le C plus, car gcc, parce que C ne prend pas en charge C plus, mais z plus le support C parce qu'il ne l'a pas fait, c'est une version embarquée de la mer. Par conséquent, vous pouvez utiliser le GPS au mieux pour compiler le code C ainsi que le code CPP C plus plus. Mais vous ne pouvez pas utiliser GCC pour compiler le C plus quatre. Vous pouvez utiliser GCC si vous devez combiner le code C. J'espère que vous avez compris la différence. Alors compilons le code ici. Il génère un point faux. Nous devrions exécuter le serveur, puis nous devrions exécuter cette ligne. Et quel est leur processus démon ? Il doit être lancé en premier à l'exception de la connexion du client. Laissez-nous maintenant exécuter le code pour le serveur. Vous pouvez le voir côté serveur et nous recevons ce message qui écoute les connexions entrantes, en quelque sorte qu'est-ce qui écoute ? Lançons maintenant le code client qui est mort sur l'autre dominante. Maintenant, nous envoyons simplement un message, nous enregistrons un message de fonction correct sur le socket à partir du client, disant que le stage DOM témoin côté serveur sera mis à jour. Dieu a connecté et quel que soit le message , la date limite qui descend à l'enquête Derby pour accélérer le passage au sodium. Ensuite, mutuel en utilisant la prise. Mettons Dando by AD et le site souligné de l' inducteur de sortie. Vous pouvez voir ici connecté au site de la ligne de chargement argenté. Après la fonction Connect, vous sortez ce message utilisant CEO qui est une différence et C plus plus. Et puis une fois le message envoyé, ceux que j'écris sur la socket du côté client, nous les recevons sous forme de déclarations. Il est équipé d'une poignée inclinée en tampon. Passons donc au côté serveur et voyons si le message a été reçu. Vous pouvez voir ici que dans le programme, agit d'un serveur appelé socket plusieurs code. Vous allez passer ce message canal après avoir écouté connexion entrante du côté argent, si vous voulez qu'elles aient autant d'âge que Glenn connectées, dit le client, mais qu'est-ce que bonjour ? Donc ce message, vous êtes une bonne chose sur la sortie, puis le client est déconnecté. Ici, j'ai eu une autre chose. Je l'ai initialisé. Si vous voyez ici, bien que nous ayons deux rétrogrades que j' utilise ici côté serveur, j'ai initialisé à 0. Parce que si je ne le fais pas initialement, cela signifie qu'il s' initialise sur eux. Et le buzz de l'Eddy, Brésil, vous pouvez directement, vous n'avez pas besoin d'écrire 0 tous les 102 ordinaux par région. Vous pouvez simplement écrire Connie racisme 0, ce qui signifie que l'ONU initialise par défaut 0. Cela est donc très nécessaire car une fois que le trottoir recevra le message du client. Dans ce cas, puisque si vous n'initialisez pas par dipolaire à 0, quels que soient ces clients, envoyez un message sur le célébrant vous avez sorti d'un nouveau affiché sur la console, vous allez recevez ce message, mais de la vitae supplémentaire, quelle chose vous obtiendrez également. Par conséquent, nous devons d'abord initialiser cette chaîne, c' est-à-dire le caractère Eric à 0. Et puis nous devons tout ce que le client envoie au serveur quand moi, cela ne va pas bouger les autres et peut s' afficher sur ça sur la console. Vous n'aurez pas accès à la base de données. Ce que vous obtenez, c'est que la cliente ne dit que bonjour, donc elle aura sa pelouse. C'est oui. Maintenant, nous en avons fini avec cette carte de programmation socket. Décidez d'appliquer les vacances à venir sur plateforme Linux à l'aide de C plus plus. Donc, une boisson chaude code C. Vous pouvez passer par la session précédente que j'ai abordée en détail. J'en ai fini pour cette session. Merci. Merci beaucoup. 15. Socket Session9 Comprendre Socket: Bonjour, bienvenue dans cette nouvelle section qui comprend la communication client serveur sur ECP. Ici encore, la communication sockets que nous verrons entre le serveur HTTP et le client. Par le terme HTTP, vous savez peut-être qu'est-ce que c'est ? Http. Http signifie Hypertext Transport Protocol. Et chaque fois que nous surfons sur le net, chaque fois que nous voulons graver des informations sur le net, nous saisirons le lien, visiterons le site et nous donnons toujours http ou HTTPS. Par pont, nous obtiendrons le lien de lancement de page que nous obtenons de cette manière. La fin de semaine d'information. De cette manière, quel que soit le lien que vous passez, vous donnez sur n'importe quel navigateur. Il peut s'agir du Mozilla, du marié, d'Internet Explorer. Ce sont tous les types de navigateurs. Il s'agit du côté client, côté application, de sorte que nous donnerons n'importe quelle URL, cette URL, qui sera le lien Odyssey, que nous, vous donnez, supposons que vous donnez à Google.com et c'est Que va-t-il se passer ? Vous souhaitez récupérer la page sur Google.com. Vous serez donc un lien sur, vous saisirez le lien sur le navigateur, sur le site sous-jacent côté application. Et cette liaison que nous passons sera envoyée côté serveur. Il s'agit d' Apache, côté serveur Apache, et il enverra les données en réponse à la demande, ce qui est des crêtes données à partir de ce côté. Les données seront alors chargées côté navigateur. C'est ainsi que se déroule cette communication. Nous avons surtout plongé le lien, mais nous ne savons pas comment cela fonctionne pour aider à gérer cette communication, c'était simplement une somme de données que nous récupérons. Supposons que nous voulions récupérer une image pour même taper le lien là-dessus, sur le, sur le navigateur. Cela peut être le problème peut être un explorateur de soupe génétique. Ensuite, nous obtiendrons les données de l'image. Alors, comment obtiendrez-vous les données sur l'image ? Comment cela se produit réellement, vous tapez simplement le lien et vous enrichissez les données sur l' âge de votre page, la façon dont vous obtenez ces données. Par conséquent, cette communication a lieu entre le serveur et le client et le serveur. Une mutation a lieu. Et c'est la communication client du serveur HTTP. Cela se fait donc sur le TCP. C'est-à-dire que nous avons vu la session TCP. C'est un protocole fiable car tout est fourni ici. Il fournit la correction des erreurs. Il est fiable car toutes les données seront envoyées. Certaines données sont perdues, puis encore une fois, elles seront transmises. Il peut également être avisé de nous. C'est ainsi que la communication est fiable. Il est également lourd. Nous l'avons donc vu, nous avons discuté de DCP. Nous allons donc voir comment ce HTTPDD est plusieurs communications client se déroulent sur TCP. Il ne s'agit donc pas d'UDP parce que TCP est fiable et que nous voulons que la communication lieu, elle ne devrait pas être fiable. Par conséquent, il aura lieu sur GCP. Comprenons plus. Allons-y pour que vous compreniez en détail de quoi tout ce dont nous discutons. Lors de nos conférences précédentes. Nous avons vu, vous savez peut-être comment se déroulerait cette communication sur socket client serveur TCP cette communication sur socket client serveur TCP, car j' ai déjà expliqué quelles méthodes bien connues sont utilisées. Ou serveur TCP, communication sur socket client. Et nous avons également vu qu'avec le code pour Windows et Linux, nous avons tous trié dans le programme sur l'ID Woodblock, cette communication temporelle du serveur TCP, la communication par socket et les fenêtres. Et nous l'avons exécuté. À l'aide de ces connaissances, nous verrons comment cette communication sur le socket client serveur HTTP se déroule sur TCP. Ce sera donc très facile pour vous car si vous avez passé par les sessions précédentes, vous serez presque tout l' accord VI qui utilise dans cette communication socket de chaque serveur HTTP hors ligne mais avec quelques modifications. Vous allez donc trouver cela plus intéressant. Et commençons les sujets qui aborderont compréhension par les gens du diagramme du blog d'un médicament. Ensuite, nous verrons comment le client HTTP envoie la demande sous la forme de la tête et de la NBC, Qu'est-ce que cet en-tête en détail ? Ensuite, nous verrons comment ce serveur HTTP donnera ces liens à la demande des clients HTTP sous forme d' en-tête et de corps. Commençons par le sujet afin que vous puissiez mieux comprendre. Il s'agit maintenant du diagramme de conjugaison des contours du serveur HTTP. Vous pouvez donc voir ici qu'il s'agit de HTTP neuf, et il s'agit du serveur HTTP. La demande sera envoyée du côté client HTTP vers le site serveur HTTP en termes de message de demande HTTP. Et c'est généralement la barre latérale que la danse qu'elle reçoit ne reçoit pas. Hum, entrez les données du client. Il produira cela dessus, puis il enverra la réponse des données au client HTTP. Donc aveuglément considéré comme un navigateur. L'exemple dont je vous ai dit que vous n'étiez pas un lien sur le delta. Le navigateur peut être de la place, il peut être l'infini explosé, ou il peut être tiré faux. navigateurs tellement différents, différents. Vous pouvez donner différents liens dans lesquels le lien contient une barre oblique de deux-points HTTP. Supposons que vous et vous vouliez donner le lien WW, le moodboard, google.com, vous voulez donner Facebook acheté standard commun, je suis point com n'importe quel lien mais vous voulez le multimédia lié lien. Quelles que soient les informations que vous souhaitez obtenir un lien, vous indiquerez les différents liens. Ce lien que vous transmettez. Ce sera le résultat du côté client. Ce sera donc le lien. Ces informations seront envoyées au site serveur plutôt que sur le site, elles répondront à ce lien. Il va récupérer, il constituera les données qu'il doit envoyer au client de sorte que les données qui étaient un site sur, ces données seront chargées et vous obtiendrez la page chargé du côté de votre navigateur. Donc, toutes ces données seront envoyées du serveur au client, qui doit être chargé côté navigateur. Commençons cet autre diagramme, opaque. C'est votre navigateur Web, comme je vous l'ai dit, il peut s'agir de Chrome, il peut être déclenché, faux. Sephardi, Internet Explorer, n'importe quel routeur, cette partie est le client et vous transmettez la demande. C'est-à-dire que vous tapez n'importe quel lien sur ce navigateur comme Google.com, facebook.com et aujourd'hui Internet. Cela ira de ce côté où il s'agit de trier ce serveur Web et ce serveur d'applications, c' est-à-dire le serveur HTTP, ce mini constitue les données. En fait, il recevra les données et les enverra en réponse à cette demande ici au navigateur, puis la page sera chargée. C'est ainsi que se déroule la communication. Nous voyons maintenant plus de détails. Comprenons maintenant ce qui se passe dans le diagramme précédent. Par conséquent, le client HTTP, envoyons la demande au serveur, y répondra via TCP. La même chose que je vous ai dit que ce client envoie une demande au serveur. C'est ici la ligne, il s'agit d'un client et le serveur décline. C'est votre navigateur. Il peut s'agir de n'importe laquelle de ces choses. Chrome, Firefox, Safari, Internet Explorer. Il envoie la demande, requête HTTP qui sera transmise via le protocole TCP. Cette demande sera donc envoyée au serveur, y répondra renvoie les données. Il y répondra ou s' il s'agit de TCP. Il utilise donc le protocole MQTT, il utilise le protocole TCP car c'est un protocole fiable. Le protocole Tcp est un protocole fiable. Voyons maintenant l'exemple, celui dont j'ai déjà parlé, le navigateur chrome. On se voit quand on donne de l'eau pour dire que nous donnons http, www.google.com, adobe eyes, en donnant l'URL. Supposons que vous receviez l'URL, le Buddha blue.example.com. C'est supposément un lien. Il s'agit de la page par défaut. Ce lien a été configuré pour avoir la page par défaut chaque fois que l'utilisateur tape ce lien. Ce lien lui-même est configuré pour accéder à cette page, page par défaut. S'il est configuré sur cette page, index.html, n'importe lequel des liens qu'il peut être. Que se passe-t-il alors ? Voyons donc voir. Cet UID, il sera transmis de cette manière. Ce que vous avez ajouté sera transmis au serveur. Cette surenchère le traite et renvoie les données en réponse et la page sera chargée. Voyons voir, un par un, que se passe-t-il ? Maintenant ? Nous discuterons étape par étape. C'est ainsi que le client HTTP enverra une demande au serveur Apache. Nous l'avons déjà fait, nous discutons de l'exemple comme si nous donnions un lien vers le navigateur. Le navigateur peut être tout ce que nous avons vu dans le diagramme de blocs. Supposons que si vous donnez example.com, comme je l'ai dit que certains de ces liens, ils sont à l'ADA ou configurés par défaut sur une page. Supposons que cette page, example.com, soit configurée sur index.html, c' est-à-dire que sa valeur par défaut a joué votre lieu. Donnez ce lien que l'égalité sera ce index.html humain. Ensuite, ce lien que vous donnez sur le navigateur ce qui se passera dans ce cas. Dans ce cas, vous devez taper n' importe quel lien sur le navigateur. Et cela nous donne un PIB. Autrement dit, si vous donnez http ww.example.com, alors STT en choisissez neuf. Ms, envoyez une demande à ce serveur. C'est ce que vous avez ajouté un peu de passé au serveur Apache. Ici, j'ai mentionné ce test. Les données sont envoyées au serveur et ces données qui sont cette interface utilisateur. Ceci, il sera envoyé sous la forme d'un huddle. Qu'est-ce que cet en-tête ? Tout ce que j'ai mentionné, l'en-tête. Cet en-tête, qu'il est là. Il y apparaîtra différentes choses. C'est là. Il s'agira des méthodes qui sont différentes méthodes HTTP disponibles. Nous allons voir la liste des méthodes de choc disponibles pour HTTP à la toute dernière fin de la session. Celui qui va utiliser est une méthode GetMethod. Cet en-tête, c'est des cancers. Si nous parlons de cette URL que vous transmettez sur le navigateur, sur le marié, disons que vous tapez n'importe quel lien, disons www.example.com. Et que se passera-t-il en arrière-plan. Donc postdoctorale en arrière-plan, ce client HTTP enverra une demande à cette pratique avec cet UID, c' est-à-dire W W.Example.com. Et cela, il n'y aura pas envie d' envoyer cette demande ou leur pratique chez ce client. Il convertira cette URL dans la maison ou l'en-tête, cet en-tête est ancêtre de toutes ces choses que S est composé de méthode. Il existe différentes méthodes comme get, delete, les différentes méthodes. Mais celui qui est ceci, GetMethod verra ce que nous sommes tous des méthodes différentes pour obtenir cela pour récupérer les URL. Donc, dans notre cas, puisque nous donnons l'URL, nous récupérons l' USDA via un an. La méthode GetMethod sera rapide. Dans ce cas. Alors, nous aurons fini. Là. Il y aura la méthode, et elle consistera en URL de boutique. Vous avez ajouté que ce sera le cas, c'est-à-dire dans notre cas est mort exemple.com. Mais s'il est configuré pour un paiement différent, dites index.html, puis b hat, puis la version du protocole. Puisque c'est que nous utilisons le protocole HTTP, il appartient donc aux réponses de la version du protocole. Ensuite, cela viendra depuis l' hôte, l'hôte sera comme www.example.com. Il s'agit de l'adresse IP qui crée tout ce que vous demandez quelle sera l'adresse d'hôte proposée ce mois-ci et l'agent utilisateur. Donc, ce Nu est cet agent. Ce sera nouveau pour vous, en fait chaque fois que vous utilisez Mozilla, Firefox ou Internet Explorer, comprenez simplement que différent, différent, différent, différent, différent, différent, différent, différent API de l'agent utilisateur utilisant, si vous voulez, vous pouvez également tester de cette manière. Il suffit d'essayer des exemples de points WW. Le navigateur bill.com sur Chrome et vous vérifiez l'agent utilisateur. Vous le tapez, le feu est faux, vous voyez l'agent utilisateur. Il sera donc drôle de les avoir en fonction des dipôles que vous utilisez VDC. La diapositive suivante pour en savoir plus sur les détails de cet en-tête. J'espère donc que vous avez compris que lorsque nous envoyons ce nouveau lien URL au navigateur, achetez en arrière-plan, ce navigateur se formera sur cet interprète de plan. Et il s'agira de toutes ces choses qui seront transmises au serveur en détail. Je vous ai dit cette méthode d'annulation de stock d'en-tête en fait, puisque nous voulons récupérer l'URL, la méthode sera la méthode GET. Ensuite, l'URL que vous tapez réellement, et la version du protocole, dont le type est GDP Virginia utilise. Ensuite, vous hébergez en fait ce qu'est une adresse IP d'hôte et l'agent utilisateur, comme je le fais pour différents navigateurs, il y a un agent utilisateur différent sur elle voir en détail. Cela est détaillé de cette manière. Par cette chose. Vous le comprendrez et c' motoriquement ou donc c'est l'en-tête. Donc, dans notre cas, nous allons chercher l'URL. Puisque je vous ai dit quatre méthodes différentes et différentes qui sont des méthodes HTTP différentes, dans notre cas, obtenir la méthode n' est appelée que parce que GET est utilisé pour récupérer l'URL pour cela, vous vous obtiendrez cela comme méthode. C'est une méthode, ce index.html. Je vous ai dit cet exemple du petit blue.example.com, mais dans d'autres paramètres par défaut, zonage est configuré sur ce index.html. Vous obtiendrez donc l'URL ici de cette manière. Ensuite, cet en-tête sera composé de cette version de protocole de HTTP. Ensuite, il cancera l'hôte ou l'hôtesse, www.example.com, que nous analysons, puis l'agent utilisateur. Il s'agit donc d'une source d'agent utilisateur. J'ai toujours écrit. Donner le lien sur l'agent utilisateur de Mozilla Firefox signifiera que cet homme était un codon alors qu'il aurait donné différent. Mais sur une inversion de la syntaxe sur cet agent utilisateur. Et tous les détails à ce sujet, sauf le trouble du langage, ces choses. C'est tout l' en-tête constitué de toutes ces informations qui seront envoyées au serveur. Ainsi, chaque fois que vous tapez une URL vers sin example.com, l'appel est configuré pour ce index.html sur Mozilla Firefox. Ensuite, en interne, ce client formera cet en-tête de cette manière, et il sera envoyé au serveur. Maintenant aussi quand nous allons faire de la programmation. Je vais donc expliquer ici tout ce qui concerne cette communication client du serveur HTTP. Et lors de la prochaine session, nous ferons la programmation. Quand j'ai exécuté le code d'un vous verrez toutes ces données. Nous imprimerons les données qui descendent vers le côté. Ces données seront donc imprimées côte à côte pour que vous puissiez les comprendre plus clairement. Ce sont toutes les choses que le client envoie au serveur et vous pouvez afficher sur la console du message du conseil consultatif qu'il a reçu du client. Ensuite, nous avons vu maintenant ce qui se passe lorsque la requête HTTP à ce serveur voit maintenant des ouvriers, c'est triste, mais cela enverra la réponse à ce type. Maintenant, ce côté doit voir cet en-tête que le client lui a envoyé. Maintenant, en dehors de l'endroit où c'est le serveur Apache, comment il va répondre à ce client. Il aurait donc dû chuter de 70. Les données en termes de ce format d' en-tête, dans ce formulaire, je vous ai dit de les envoyer pour que vous les obteniez sur la page. Obtenez la page appropriée chargée d'informations. Donc, cet album, ce qui NE PAS DANS le cas de la barre latérale qu'il constitue constitue sur cette information cette information qui est de ce côté, où qu'il soit, s' arrête si elle est possible, il y aura la version du protocole, comme GTP, quelle version il utilise, le code d'état et le message. Qu'est-ce que cela fait, c'est si le lien que l' utilisateur lui a donné a été correctement la barre latérale Ce matin. Il y a une défaillance du réseau, n'importe quoi. échec réussi, dépendent du code sont leurs messages sont là pour cet échec succès et de nombreux messages différents. Il l' enverra donc réellement dans cet en-tête que nous considérerons toutes ces informations qu'il devrait contenir, ainsi que le type de contenu et la longueur du contenu. Quel est donc le type de contenu et la longueur du contenu ? Dans notre cas, nous donnons le www.example.com ou par défaut que lien est configuré sur index.html. Supposons que cet index, notre type de contenu soit de page HTML. Supposons qu'il s'agisse d'une image, alors il aura donné que le type de contenu est l'image. Et que prête ce contenu ? Le champ de contenu correspond à la quantité de données reçues. La quantité de données ascendante réellement envoyée par le serveur au client. Cela dit le contenu. Et cela sera suivi d'une ligne vide et du message avec le serveur 1% pour refuser que vous puissiez écrire. Ce que nous ferons lors de notre prochaine session, nous écrirons un programme pour ce serveur. Nous n'avons pas besoin de rédiger le programme pour le vol. Utilisez toutes les méthodes que nous avons étudiées jusqu'à présent. C'est pour la communication du serveur HTTP, au lieu de l'aide américaine, tout ce qui est nécessaire pour créer une socket à laquelle se lier , écoutez pour accepter toutes ces coordonnées seront écriture et quelques petites modifications en fait, il s'agira de cette modification. Depuis que je suis avec vous, depuis, je vous dis que le serveur répondra en termes de production. Donc, puisque nous allons écrire le code sur Leda côte à côte, puis sur mission. Écrivez toutes ces choses. Nous devrions fournir ces informations du côté serveur dans notre code afin que nous obtenions une réponse appropriée pour annuler, nous obtenons une page appropriée. Donc, quel que soit le message que nous saisissons côte à côte bas, nous voulons que ce message soit affiché sur le navigateur, mais dans le document dit il doit être imprimé côté navigateur. Supposons que nous envoyions haut de maman, le bonjour ou le bonjour ascendant, achetez n'importe quoi du côté serveur. Il doit être affiché sur la page de votre navigateur comme bonjour, bonjour, quel que soit le message que vous envoyez. Mais nous en avons deux types. Nous ne devons pas détecter et détecter les textes. Nous devons l'envoyer sous forme d'en-tête. Et ce que cet en-tête annulera s'arrête. Il sera composé d'une version de protocole. Vous devez indiquer la version HTTP dans notre ancien code serveur. Ne vous inquiétez pas à ce sujet. Expliquez-vous avec le tableau. Ce n'est donc qu'une description tellement de personnes qui commencent à embarquer, je vais vous expliquer ce que le codage est requis et c'est très simple. Il suffit de deux ou trois lignes d' extrait de code or pour effectuer le serveur HTTP, la communication client puisque vous savez déjà ce qu'est le trottoir ou le doc TCP, nous l'avons vu dans notre précédent puis faites simplement l'objectif est adulte et c'est une chose simple parce que ce que nous devons simplement constituer l'ensemble de verticales ou de combat, nous devons constituer que le message, quel serveur enverra à la revenus de ligne en crédit formel. Ce n'est que la différence. Ce que nous avons montré, c'est, Alex, je vous mentionnerai toutes les choses que nous avons à donner à un nouveau portail afin que vous puissiez simplement signaler tout ce que j'écris, quoi que ce soit que je fais du codage et vous pouvez Comprenez-le. Qu'en est-il de ceux que vous faites vous-même, vous exécutez vous-même, tout ce que vous allez vous faire savoir ce que toutes les choses sont nécessaires. Donc, ce message de score d' état de la version du protocole, vous devez leur donner le type de contenu , puis suivi d'une nuit vide et du message. Voyons donc voir. Dans ce cas, il devrait s'agir du format. En fait, il s'agit d'une image de format ou diagramme et du type de message que je vais expliquer. Je vais vous expliquer lors de la prochaine session. Quel message sera donné de ce côté en termes de fichiers d' en-tête. Si nous leur donnons ce que nous ferons dans notre cas, comment le faire ? Si nous leur donnons ce que nous ferons dans notre cas, Vous effectuerez cette communication entre la fenêtre du navigateur, le serveur Apache. Nous allons simplement, puisque nous l'avons fait, nous avons la configuration de notre machine elle-même. Il voulait le tester, il allait y arriver. Nous fournirons l'adresse de l' hôte local et l'ordinateur, le serveur, pour écouter sur l'hôte local du lecteur DynamoDB côté navigateur. Chaque fois que nous donnons le VI à donner au local qui donne l'adresse IP a été tiré sur la machine elle-même. Dans ce cas, il va parler. Et vous n'avez pas mappé avec le même port, le même serveur et le même client. Par conséquent, une fois que nous écrivons l' adresse IP de l'hôte local dans l'ordre, mais je donnais les sources de numéro de port sur ce numéro de port où je l'applique avec le même numéro de port. Nous allons donc nommer le serveur de ce numéro de port, c'est-à-dire 80. Et nous allons faire du côté client, cet hôte local, l'hôte local sur l'adresse IP côté client et avec le numéro de port. Je vais écouter, écouter la demande du client. Étant donné que l'ADA a le même numéro de port et qu'il est mappé à la même adresse IP sur le serveur. Devrions-nous l'écouter ? Et il va l'accepter. Il accepte la connexion, puis envoie un message au client qui sera affiché sur le côté du navigateur. Alors, ne t'en prends pas, détendez-vous. Je vais vous expliquer en détail lors de la prochaine session. Pour comprendre cela, il s'agit des données dures que nous devons constituer. Il sera intégré directement dans notre message du site serveur. Seul ce message sera modifié à partir de l'identité du serveur pour écrire le message entier qui donnera la version du protocole, puis il donnera le statut 200 et les messages d'état. C'est tout ce que j'ai réussi. Il y a une raison pour laquelle nous donnons ce détail et cette information comme la date. Et puis les types de contenu de n'est pas EPA prenez l'exemple de ww.Example.com, puis il est configuré sur index.html. C'est donc le type de marché suivant qui n'est pas le type d'image, donc c'est le type de contenu et la quantité données transmises à partir du serveur en a pris neuf, c' est-à-dire le contenu Lin. Ensuite, une ligne vide et le message doivent être envoyés du serveur au client. Dis bonjour par n'importe quoi. C'est la chose composée par le site serveur sur lequel ces données sont un format d'en-tête qui sera envoyé au client afin de charger la page côté client. Donc oui, une fois que ce centre de conseils répond comme indiqué dans la diapositive précédente , la page sera chargée sur le site de ligne du navigateur, mais le message envoyé par le serveur, la même chose que je vous ai dit une fois. Le serveur constitue cet en-tête et l'envoie au client. Et puis la page sera chargée sur le côté, côté navigateur avec le message de ce côté, mais elle est envoyée. C'est ainsi que nous allons procéder. Maintenant, nous avons fini comprendre les concepts nécessaires. Et à la toute dernière fois, méthodes HTTP qui y sont présentes qui sont radicalement différentes méthodes HTTP comme get, c'est pour corriger l'URL. Dans notre cas, cette méthode sera utilisée car nous récupérons l'URL. Par conséquent, la méthode GET sera appelée lorsque l'en-tête est constitué, puis un autre message et en-tête, c' est-à-dire pour récupérer les informations de l'URL. Une autre méthode consiste à stocker dans la méthode URL publiée sur les données qui vous sont envoyées. Je n'ai pas reçu de réponse et j'ai supprimé le D2L. Il existe donc différentes méthodes du HTTP. Ce que nous avons juste besoin, c'est la porte d'entrée puisque nous devons récupérer les URL. J'espère que vous avez compris le concept avant de vous arrêter. Avant de commencer par le codage. Il est nécessaire de suivre cette session. choses de base dont nous avons discuté, nous avions vu comment cette communication depuis le navigateur se déroule trop sombre des deux côtés. Autrement dit, quel que soit le lien que vous avez mentionné sur vos différents navigateurs, quel que soit le lien que vous ce lien sera analysé. Autrement dit, une demande du client sera transmise au serveur et ce client en arrière-plan, elle constituera l'en-tête qui contiendra ce format si vous dégoûte, il contiendra le car vous devez récupérer l'URL, puis l'URL. Supposons qu'il soit indexé, supposons qu'il s'agisse d'exemple.com. La valeur par défaut est configurée sur index.html. Il s'agira donc de l'URL, puis de la version du protocole. Puisque nous utilisons std, une version de celui-ci, alors l' hôte qui est example.com. Puis il a été écrit, je vous ai dit quatre navigateurs différents, comme Chrome pour mon acquisition tombe. Dave dérivé dans différents nouveaux agents utilisateurs. Ensuite, ces informations s'y trouvent, comment cette disponibilité répond-elle ? Donc, il avait également été constitué répond en constituant cet en-tête et ce corps lui-même. Donc, cet en-tête comprendra toutes ces choses. C'est donc nécessaire pour notre cas. Nous allons écrire le message à partir du milieu de la réécriture en collant la même copie ou HTTP ou téléphone, désolé, le contour du serveur TCP que nous avons vu. Nous copierons le même code parties que DCP. Le codage client de plusieurs lignes Dcp n' est pas nécessaire seulement le serveur TCP, nous écrirons le code, le même code et tout simplement inutile les envoyant du serveur au client. Textes non centrés comme bonjour, salut, sable en termes de format de crédit, dans ce format que nous devons admettre changé dans la liste tout dit. Et puis vous pouvez voir comment j'ai pu finir application à quel point un lien hypertexte sur la façon de charger la page, comment les afficher au format de page d'index. Dans l'évaluation du format basée sur le Web, vous passez du côté, mais du côté du navigateur, c'est ce qui existe et il existe différentes méthodes, alors soyez prêt pour une nouvelle session, mais n'est-ce pas codera pour la communication en ligne du serveur HTTP, c' est-à-dire le serveur HTTP Apache, et la communication du navigateur sur TCP dans Windows VDB, alors soyez prêt pour cela. Merci. Merci beaucoup. 16. Socket Session10 ProgramExecution HttpApacheServerClientCommunication Windows C++ Partie 1: Bonjour, et bienvenue dans cette nouvelle section qui est la programmation et l'exécution d'un TPP. Notre t-shirt permettrait de naviguer dans la communication client sur l'IDE, sur DHCP. Comme lors de la session précédente, nous avons constaté la compréhension du navigateur du serveur HTTP Apache. communication client a peut-être vu ce qui est nécessaire, comment se déroule la communication de la barre latérale et du navigateur, comment le client, mais quand, chaque fois que nous lançons, nous avons ajouté en tapant lien sur le navigateur Web. Et le navigateur qu'il peut être, il peut être explosé, il peut être développé, il peut s' agir de Firefox, de navigateur. Je suis député. Ensuite, cette URL est envoyée à la barre latérale sous la forme de l' en-tête que nous avons vu, nous avons vu le format de l'en-tête. Veuillez donc vous référer à la section précédente si vous ne l'avez pas parcouru, c' est la compréhension en détail avant de commencer l'exécution de ce programme sur ID et de faire cette communication sur le navigateur et serveur Apache. Nous avons vu comment le client enverra un message aux sédiments et n' informera pas l'en-tête, puis le colon y répondra. Même dans le dôme Salk, en-tête et le corps. Ensuite, nous recevons enfin le message où ils n'avaient pas décidé, eh bien, nous enverrons le message s'affichera sur le navigateur et la page Web. Nous verrons que cela va être en cours d'exécution, va écrire le programme sur l'ID appelé ID de bloc. Ici, nous l'utilisons car il est disponible gratuitement, puis nous l' exécuterons et vous verrez comment nous faisons la communication. Commençons. Maintenant, la déclaration du programme, que j'ai mentionné maintenant que sur le navigateur, ce que nous allons faire sous les navigateurs. Supposons que vous utilisiez un navigateur Chrome. Vous pouvez utiliser n'importe quel navigateur. Dans notre cas, nous utiliserons le navigateur Chrome. Et l'utilisateur donne le lien comme celui-ci. Quel est ce lien ? L'utilisateur peut donner n'importe quel lien. J'ai donc donné ce lien parce que je le veux, je veux que la mienne prenne la communication sur la même machine hôte. Bede écrit le code dans la cellule de la manière dont les électeurs indécis achètent à l'adresse IP de l'hôte local lui-même, de cette machine elle-même. Et il sera lié au même hôte local. Et le client devra alors se connecter au serveur. Nous devons donc donner la même adresse IP. Je me suis donc demandé qui vous avait dit un à sept points 0 point un, que vous donnez du côté client. Donc toute cette compréhension, en écrivant le programme comme je vous l'ai dit la session précédente, cela nécessite la connaissance de la communication TCP, que nous avons vu la programmation de socket, que nous avons vu ont fait pour les fenêtres. Nous avons effectué un ensemble de communications en ligne lors d'une session précédente ou précédente, nous avions vu comment le faire si vous pouviez écrire le code pour le serveur ainsi que client, puis la communication. J'ai donc d'anciennes méthodes de cascade utilisées pour les gammes de produits finaux côté serveur. J'aime le volume. Ensuite, il faut l'écouter et ensuite, sauf sous le programme que j'ai vu sur ceux-ci. Vous avez donc passé toute cette session. Vous allez bien séquentiellement. Décodage presque ce que nous allons faire. Quelle est la valeur de HTTP ? Neuf, utilisera le même codage que celui que nous avons fait pour la communication client du serveur de programmation de socket TTP . Mais une petite modification peut être une modification d'une ligne sur hauteur de l'envoi du message du serveur au client. Comme nous l'avons vu, si nous devons faire la communication pour nous, ces certificats d'actions valent neuf communications et messages. Nous devrions le faire pour que ce soit le format d'en-tête. serveur doit donner la réponse au client dans FOMO, non comme dans le prétexte. Il ne s'agit que d'une modification trois lignes de code plus anciennes. Qu'est-ce qui sera pareil pour le site serveur, que vous n'avez pas encore fait PTP, que nous avons vu et exécuté. Nous n'avons donc pas besoin d' écrire cette ligne. Ford hillary, nous ne devons écrire que les lignes de port du serveur et vous ingérez une faute de frappe, vous élargissez sur ce navigateur, cette adresse IP particulière, c'est une adresse de boucle arrière. Cela signifie que ce sont ces adresses sur cette machine hôte locale elle-même, quelles que soient les adresses IP de la machine hôte locale, c'est celle sur l'adresse IP et le numéro de port que nous sommes donnant un 0 AT, nous savons que c'est spécifique à HTTP va donner la carte également pour le côté serveur, c'est une bonne ligne disant où nous allons donner cette URL sur le Chrome n'écrira pas ce code de ligne, cette unité n'a pas besoin d' ouvrir cette URL et cette URL uniquement ouverte si vous souhaitez que la communication ait lieu sur la même machine hôte pour cette ligne. Donc, ce minima. Il s'agira, et je pense à l'adresse IP, adresse IP locale de la machine elle-même. Donnez donc cette adresse IP elle-même. Et ces numéros de port sont simplement que le client se connectera au serveur et a dit qu'en est-il du message que nous envoyons du service via l'envoi du crédit SOC, composé de la Haggadah. ainsi que le corps à corps se poursuivra. Le message a également été que vous devez passer. Et puis sortez. C'est sur l'écran du téléphone, vous obtiendrez une sortie quelles que soient les sockets, quel que soit le serveur envoie au client, le message comme High Auto, bienvenue dans la programmation du socket quels que soient les messages sur centralis. Donc code de démarrage pour que vous puissiez ne pas comprendre ? Ce n'est que l'énoncé du programme. Ce que je vous ai dit. Vous devez ouvrir ce lien dans la pièce. Il s'agit de l'application, c'est l'application cliente qui se trouvait à l'application. Ensuite, la demande sera envoyée au serveur et le serveur répondra en envoyant le corps. Ensuite, vous obtiendrez sur l'écran le message de la réponse et des étudiants. Dans la page, c'est une fin que nous pouvons voir dans la commande erronée, comme lorsque vous exécutez du code cérébral, vous pouvez voir ce que tout le client lui a envoyé. Nous l'avons également vu en détail lors de la session précédente. Voyons donc ici comment se produit la communication entre le navigateur, le client et Apache. Donc, lorsque nous donnons ceci mais ce lien Endo Chrome navigateur, alors ce lien est envoyé sous la forme d'en-tête. J'ai déjà discuté de ce message. J'ai vu que le lien sera envoyé aux clients et aux clients et nous tapons ce lien. Et puis le client constituera, créera un en-tête, sera envoyé au serveur. Il va donc construire le caché , puis l'envoyer au serveur. Nous avons vu comment, lorsque le client envoie des constructions, il se dirige, comment cela se fait-il lâchement ? J'ai vu, dans ce cas, la méthode est terminée. Ensuite, nous avons vu que cela donne ce résultat. Nous avons vu, puis il y a une version de protocole, puis c'est un hôte. Ensuite, il s'agit d'une région énorme sur l'ancien format dans lequel une échéance pour le serveur en termes d' en-tête dont nous avons déjà discuté avant cette session, veuillez la parcourir. Et Dani, je l'ai mentionné, envoie le message à la septième fois que j'ai entendu dire ce qui devrait répondre à ce client aussi, en termes d'en-tête lui-même, je n'ai pas fait de format corporel, c'est juste répété ce sens unimodal latéral et stimulus qui répond au client et le serveur l' envoie dans cette ligne. Il devrait donc être au format tête et corps. Nous avons donc vu que le serveur enverra cette preuve de toute vierge, puis le statut qu' il réussit ou non. Ainsi, le numéro d'état du message d'état dans ce format de carte, puis les dates détaillées, identifiez le type de contenu. Donc, dans notre cas, il s'agit simplement d'un message texte. S'il a choisi le type de contenu texte, HTML. S'il s'agissait de l'image, cela donnerait avantage, puis le contenu atterrissait , ce qui signifie combien de données sont transférées du côté serveur vers le client, puis des lignes non vides. Et ici, vous allez écrire le message. Voyons donc comment les écrire en tant que h à partir du site serveur. Il y a eu au-delà du changement nécessaire en plus de la carte entre une scène ou le serveur TCP. Il s'agit alors d'un message que nous devons envoyer du serveur au client. Je ne fais que mentionner ici dans cette présentation , puis je réécris le tableau. Donc, cela vous fera un z pour comprendre ce révisé ou les petits concepts, les objectifs de communication sur l'alcool. Alors il y a une raison pour laquelle je vais simplement parcourir cette présentation maintenant ce message, ce que vous allez envoyer, vous ne corrigez pas les indices que vous ajoutez ou que vous pouvez définir, vous pouvez hachage définit la taille maximale, la somme et vous pouvez éclore pour trouver ses yeux sur ce nombre et vous pouvez lire les signes ici. Il s'agit simplement d'un Gooding simple pour comprendre le concept. Et puis ce que je fais, que j'initialise cette chaîne dans cette image. C'est juste une chaîne qui est le message, il s'agit de caractères Ariel et j'écris une copie de chaîne et je lui transmets cette chaîne. Comme je vous l'ai dit, comme nous l'avons vu dans cette diapositive, je devrais envoyer ce format. Donc, ces détails sur moi, j'ai rempli le message qui est une version du protocole que les numéros d'état Davis et ce contenu du serveur de dates. Et donc, si vous voyez ce message, il s'agit de bits sur le HTTP, puis leur version du protocole et le statut à but non lucratif l'ont alors okayé comme un message que les continents et ensuite il est 47 contenu. C'est-à-dire combien de données sont envoyées du serveur au contenu client qu' il faut pour vaporiser. Et puis nous ajoutons dans le corps, puis il y aura des lignes obliques vides et il y aura une nouvelle ligne. Et puis, corps, je lui écris du tsunami. Je peux écrire tout ce que je vais écrire. Je peux écrire la programmation de sockets, bonjour ou n'importe quel message que vous voulez censurer. Il s'agit d'un message adressé aux élèves. Ce message s' affiche sur votre page. C'est donc ce que vous allez envoyer du côté serveur. Commençons donc notre code. Vous devez donc installer Code Block ID est disponible gratuitement et c'est un open source. Vous n'avez pas besoin d' acheter la licence. Il est très facile à installer et suffit d'aller sur le site de téléchargement et installer et de commencer à programmer avec lui. Commençons. Dans mon cas déjà, je suis ouvert avant le menu et double-cliquez sur le bloc de code. Vous obtiendrez cette page. Créons la nouvelle application Project Console. Cliquez sur Suivant, C plus plus, puis sur le nom qui se trouve ici. C'est le cas. Pour lui donner un nom raisonnable, cliquez sur Suivant, puis sur Terminer. Il videra sur le programme d'appel Hello World pour vous. Laissez-moi donc augmenter la taille du texte afin que vous puissiez voir tout ce que vous allez taper hill juste une seconde. Les Juifs seront très grands. Laissez-moi plonger un copier-coller le code. J'ai déjà écrit le code. Je ne veux pas gaspiller un seul revêtement de diamant, comme expliquer chaque ligne. Il ne s'agit donc que du code répétitif. Il suffit d'ajouter ce message que j'ai montré dans cette présentation. C'est ça. Alors ouvrons. Je l'ai collé. D'accord. C'est tout le code, donc ce n'est pas nouveau pour vous. Vous l'avez déjà vu dans la valorisation de la communication de TCP. Permettez-moi de le réviser. 12 comme une ligne supplémentaire en cas de communication hors connexion du serveur HTTP. Ce que nous faisons tout d'abord, l'exécution de notre programme commence par la fonction principale. Encore une fois, la raison pour laquelle la fonction lumen est un point d'entrée pour démarrer l'exécution de n'importe quel programme. Quelles que soient les lignes de code que vous écrivez dans cette fonction principale, elle sera exécutée ligne par ligne. Nous devons maintenant déclarer ces fichiers d'en-tête. Dans le cas du système d'exploitation Windows, cela montrera que nous pouvons utiliser les fonctions de celui-ci. Chaque fois que vous appelez une fonction, utilisez n'importe quelle fonction. Puisque j'ai trouvé que vous avez mentionné il ne donnera pas de chaîne de prairie compilée en fait, c'est un vrai personnage de livre et nous avons simplement initialisé avec ce format. Je vais vous expliquer cela dans le même format. Pourtant, je fais passer les messages apprenant la programmation des sockets. Ensuite. Il s'agit de données WSL. Vous avez déjà vu ce qu'est WASH. Révisez-le rapidement. Ces données WAS sont donc utilisées pour initialiser la bibliothèque de socket gouvernementale. Nous avons vu ce WAC d tau, c' est-à-dire post-op toutes ces données, c'est-à-dire qu'il s'agit d'un croisement structuré des structures en second argument. Alors, qu'est-ce que cette structure ? Tout d'abord, quelle est cette fonction, comme je vous l'ai dit, elle est utilisée pour les initialiser. Et Socket Library, zip extrait ces données WSS dans lesquelles le premier argument indique ce que le programme veut utiliser, qui se connecte à la bibliothèque Women Socket. Puisque le programme veut utiliser la version 2, nous devons donner dans ce format faire un, puis arrondir deux virgules 0. Ensuite, ce deuxième argument, c' est-à-dire les données Ws, c'est une structure qui est la suivante. Vous avez créé un objet de cette structure. Cette structure. Donc, nous passons ça. Vous mentionnez l' adresse sur cette structure, donc elle est renversée par cette fonction. Quel est le but de cette structure ? On dira donc que cette bibliothèque de sel de diamant transmettra les informations critiques. Aucun programme n'indique le nombre de sockets pouvant être créés et d'autres informations nécessaires. C'est ainsi qu'il construit lorsque nous appelons cette fonction cible, qui est utilisée pour initialiser la bibliothèque Wind Socket. Ensuite, nous avons vu ce ROSI et vous devez créer une socket en appelant la fonction socket trois arguments ou leur argument posts. C'est une famille d' intérêts Dennett. Il est EOQ souligné dans une seconde est un type de type de prise. C'est un courant d'eau. Nous utilisons une communication sockets fiable et n'oubliez pas que puisque nous faisons la communication de HTTP, vous devez toujours avoir lieu sur TCP lui-même, c' est-à-dire le rack VCB où vous avez de la dimension. Voyez-vous le protocole de communication musicale ? Vous avez déjà vu dans socket six sessions. Et vous avez mentionné le type de flux, puis les zéros. Il s'agit du protocole de communication par défaut. Vous êtes dans un chaser 0. Maintenant que nous avons créé le socket, il va maintenant renvoyer le descripteur de socket. Donc, par ce descripteur, nous appellerons la fonction bind, appellerons la fonction d' écoute, puis la fonction de sortie par ce descriptif puisque nous allons relier cette socket de descripteur de socket, alors ce morceau de code est celui-ci. Cela, nous avons déjà vu qu'il s'agit d'une structure. Ajoutez R. C'est donc une structure que nous avons écrite ici, bien que serrée, celle-ci, c'est une structure et c'est une vidéo, un peu une sphère créée que vous avez, je vous ai dit que nous doivent créer un nouveau obtenir avantageusement le descripteur de socket post en appelant la fonction socket et l' analyse sur un disque news, saga, descriptive et Nicole la fonction de sortie que nous avons déjà ajoutée. Et cette structure. Dans cette structure, vous renseignerez l'adresse IP à laquelle Edward doit se lier, ainsi que vous prendrez en charge normalement tous les détails nécessaires que vous y donnerez. C'est ce que vous donnez dans un DVR et excluez tout peu intrusif. J'ai expliqué en détail la signification de cette adresse IP à laquelle le serveur doit se lier est que nous avons utilisé pour cela. Ce qui est un EDD à un besoin souligné peut être lié à toutes les interfaces réseau la même machine hôte. Donc, si vous vous connectez, si vous n'utilisez aucun, Il a une adresse IP différente, est une interface réseau indépendante. Cette adresse IP adresse à nouveau le serveur en remplissant tout ce que vous utilisez pour vous connecter à lui dans le cou. Si vous utilisez land out, si vous utilisez le Wi-Fi, le Wi-Fi et que vous avez une idée différente, une interface réseau différente. Encore une fois, si vous utilisez le Wi-Fi, il peut se lier à une dissolution de cinq ans. C'est là. Il peut s'agir d'acheter deux interfaces réseau qui ont ensuite été ajoutées, c'est ce que nous avions mentionné qu' alors numéro que nous écoutons dub. liaison latérale à ce numéro de port est 0 AT pour la connexion HTTP. Côté client, il doit être connecté au même numéro de port. C'est-à-dire qu'en achète-t-on deux. Il s'agit donc d'un nombre très important de diabète important que la ligne doit correspondre à la même ligne, devrait être reliée à la même. Ensuite, cette structure nous avons senti que nous appelons la fonction dans laquelle nous sommes confrontés à ce descripteur de socket. Nous passons cette adresse. En fait, les perturbations étaient relativement supérieures au diabète et au numéro de port et à la taille de celui-ci. Ensuite, nous avons eu une fonction d'appel de la leçon. Maintenant, vous écoutez. Fonction d'écoute à nouveau, nous passons le descripteur de socket par opposition à l'argument. deuxième argument contient le nombre de numéros de connexion client devant figurer dans la file d'attente. Combien ont décidé quoi encore une fois, traitent réellement un par un et Ken traitent une fois la ligne de communication terminée, puis il traitera l'autre ligne jusqu'au nombre de numéros il devrait y avoir attendre le site de connexion client mais accepter le site de connexion de ligne déclinant, se connecter au client. Combien de demandes client peuvent-elles être présentes s'il y a plusieurs lignes ? Donc, s'il y a trois lignes, nous voulons être allumées, Connectez-vous en fait, donc elles devraient être dans la ligne d'attente en cours de traitement. Nous pouvons donc mentionner le nombre de neuf conditions qui devraient innover. Vous avez mentionné des zéros car nous ne voulons qu'une seule connexion après temps. 17. Socket Session10 ProgramExecution HttpApacheServerClientCommunication Windows C++ Part2: Une fois qu'il obtient une connexion du côté client, il écoute, puis il acceptera la connexion. Vous êtes par le passé le descripteur de la socket. Nous allons passer cette structure vide. Cela est renversé lorsque nous appelons la fonction de sortie ici, les détails du client seront là, quelle adresse IP, numéro de port et tout cela. Cette ISO pour la destruction, vérifiant cette condition, qu'elle soit réussie ou non, puis elle retournera au chargement est le descripteur de dividende crypto de la socket, nouveau descripteur de la socket. Alors pourquoi les descripteurs sont-ils nécessaires sont pour vous le premier descripteur mort, il faut x pour écouter. Demande de connexion indépendante réellement financée. Cela sera engagé avec celui du client. Et le socket est peut-être utilisé pour envoyer et recevoir les données. Cela sera donc engagé dans ce travail. Par conséquent, ce sera différent de ce que nous faisons. Ici. Nous avions reçu le message à partir de la date limite. Alors quel message vous obtiendrez simplement puisque nous allons écrire, taper ou écrire cela, j'ai été un lien sur le navigateur Chrome. Comme je vous l'ai dit, vous ne passerez qu' un numéro de port d'hôte local. Dans ce cas, ce message, mais il serait transmis des revenus client au serveur de l' ancien soviétique au-dessus de la liaison Bassanio. Je vous ai donc dit que cela devrait être rapide en termes de commentaires d'en-tête de client en serveur, le message sera en train de transmettre la gestion a vu ce format d'en-tête lors des sessions précédentes. Il devrait envoyer la méthode et il devrait y avoir U1, U2. Il devrait s'agir du coût de la version du protocole sur la méthode. Il doit ensuite s'agir de l'URL, puis de la version du protocole, de l'hôte, puis des en-têtes User-Agent. Ainsi, chaque fois que vous recevrez ce message du client, message sera reçu dans cette chaîne d'environ quatre et nous l'imprimons afin que vous puissiez imprimer toutes les choses. côté serveur. Ce que le client voit est au format masqué, c' est-à-dire le mouvement sur le HTTP puis sur l' URL, puis sur eux. À ce sujet, à propos de la méthode possible, vous obtiendrez la méthode, puis vous allez encore une fois, URL et vous obtiendrez la version HTTP et qui est la région utilisateur, vous verrez cela. Et ensuite, la vue de Dieu, qui envoie le message, est celle-ci. Qu'est-ce que ce message que nous avons vu ici et que nous avons ressenti à celui-ci, c' est-à-dire que nous transmettons également la réponse du serveur au format d'en-tête, pas un simple message texte, pas bonjour, Bonjour, comme ça Nous le sommes. Vous devez écrire dans ce format lui-même pour que le message qui sera envoyé du serveur au client soit affiché. L'affichage, qui apparaîtra sur la console doit être le format de page Web interne. Donc, ce sera un passage du login ici. Ensuite, ces données, chiffres, statut, contenu des messages et combien de données ont des liaisons forment notre échéance, puis dix types dans détectent SDM et le corps principal. Ce message ou ceci réagit passant une programmation simple de socket d'apprentissage de message. Cela devrait donc être affiché sur le navigateur. Une fois que les sédiments sont connectés, faites-le à la ligne. Le client décroche la complication. Comme le client, nous lançons l'URL. Ensuite, vous ajoutez une liste obtenue du client au serveur, informelle ******. Ensuite, nous enverrons également ce message et le crédit formel et sur le navigateur. Enfin, vous recevrez le message quel que soit le message puisque c'est ce que l'analyse thrombo encore du serveur au client ce message, puis nous ajouterons la vérification. Aucun éditeur ne signifie que s'il s' agit d'un message signifié à 0 , nous fermons la socket. C'est donc tout le codage requis. Quel serveur HTTP, nous n'avons pas besoin de coder ou de client, il vous suffit de taper un lien sur le navigateur qui n'est que bien ou un message qui n'a pas écouté. Et le dénominateur compile le code. Et voyons voir. Ceci est combiné avec le fichier actuel. Donc, ici, vous ne pouvez voir aucune mitose présente et laissez-moi juste essayer. De nouvelles idées sont présentes. Vous devez maintenant exécuter ce programme en cliquant sur. Sachez comment vous voulez, vous devez y aller. Je l'ai déjà dit lors de la session précédente , allez également à la vue. Et puis, dans la perte, il faut prendre cette boîte. Maintenant, lorsque vous donnez une facture, en fait lorsque vous construisez et exécutez, dans ce cas, vous pouvez voir ici que le serveur est en cours d'exécution et il vous permet de vous demander, c'est viable si vous voulez autoriser Nexis ? Oui. Maintenant, le serveur est à l'écoute de la connexion entrante. Maintenant, nous devons envoyer, vous devez ouvrir l'URL. Vous devez taper un lien sur le lien du navigateur. Ce sera le plus simple, comme je vous l'ai dit, ce sera l' adresse IP locale un à 7 points un et le port numéro 80 de récupération tapez ce lien sur le navigateur qui se trouve sur neuf sites. Ensuite, la communication se fait au serveur et le serveur enverra le message en termes d'héritage et atténuera sur navigateur ce message comme ce que nous devrions obtenir. Nous devrions obtenir celui-ci qui est, quel que soit le message que vous leur avez donné sur le site corporel, apprendre la programmation de socket. Voyons voir, Allons-y. Je me suis ouvert et je tape cette URL. Je vous ai dit que nous avions deux cotylédons, un à 710 côlon n° 1 80. Il s'agit de l'adresse de bouclage, même adresse IP de cet hôte local et des numéros de port dans le serveur sans serveur se lient à cette adresse IP et aux numéros de port. Donc, du côté client, nous devrions donner le même que celui que nous donnons, puis double-cliquez dessus. Donc, vous pouvez voir que nous avons reçu ce message, j'ai double-cliqué sur ce lien. J'ai appris la programmation de socket. Que s'est-il passé maintenant ? Je suis mort sur le navigateur, navigateur Chrome, cette adresse IP particulière. Le numéro de port qui décide de ce qui est lié simplement et ce message que Dieu a reçu, quel que soit le client envoie l'eau, fait le service, et ensuite il se convertira, se trouvera convertit cette URL avant de l' envoyer au serveur, la convertira au format d'en-tête de sorte que dans le service je reçois ce message. Voyons donc ce message. Ce que nous avons obtenu ici, vous pouvez voir où j'ai reçu le message du côté client en termes d'en-tête, chaque fois que vous ajoutez un nouveau passé ici en FIV, adresse IP et numéro de port. Il a donc été converti au format d'en-tête et il a été imprimé côté logiciel, quel que soit le client qui descend vers le serveur. Le message. Ici, vous pouvez voir comme je vous l'ai dit, toutes ces choses que son client voit cette méthode, la version du protocole, puis l'hôte est ceci, puis l'agent utilisateur. Ce déclin descend donc jusqu'au serveur que nous imprimons côté serveur. Comme vous pouvez le constater, nous l'avons vu dans ce programme lui-même, comme vous l'avez vu dans ce programme lui-même, l'a vu. Cette ligne indique, en fait, et de l'autre côté, ce qui reçoit le message et nous apportons cette année à la fois en tampon et nous l' imprimons en haut, invendu. C'est pourquoi nous recevons tout ce message, quel que soit le client envoie au serveur en termes d'en-tête. Maintenant, le client, puis le serveur en fait une fois ce message reçu, nous ajoutons à nouveau ce message latéralement, puis le serveur envoie un message. Une fois qu'il reçoit le message du client , le serveur répond en envoyant le message. Et ce message que nous avons vu ici, nous passons ce que nous transmettons ce message et nous vidons toutes sortes de formats dans le même format. Mais nous écrivons tous ces détails, cette Fama Titus, différentes photos et pour le client ou le serveur. Tout d'abord, il y aura la version du protocole que l'état. Ce numéro est le message de Peter, le type de contenu, la longueur du contenu et toutes ces choses, puis avec la banque, puis le corps. Quel message ? Ce message que Southwest Science Server envoie au client doit être affiché dans cette base. Vous pouvez donc voir à propos de la programmation de socket d'apprentissage. Il s'agit donc d'une communication bidirectionnelle qui a eu lieu. C'est ainsi que vous devez courir. Une autre chose à mentionner en fait, pour vous, si vous n'avez jamais Rodin la communication par socket sur votre seule machine, même machine peut être lorsque vous écrivez cette nouvelle ADA, numéro de port que vous obtiendrez peut-être en tant qu'éditeur. En fait, c'est très important, alors veuillez le télécharger. Vous obtiendrez peut-être une autorisation de modification refusée car il existe un pare-feu dans lequel il ne vous permettra pas de communiquer. Ça peut arriver. Cela peut arriver. Il permet, mais s'il ne le permet pas, il donne la permission refusée. En fait, dans ce cas, vous devez effectuer certains réglages. Je viens de mentionner que vous l'avez mentionné maintenant afin que cela vous soit utile. Ne manquez donc pas ce DOM, qui est très important. Il peut s'agir de quelques phases un problème, vous pouvez le résoudre simplement. Il ne faut qu'une seconde. Dans ce cas, vous devez ouvrir le bloc-notes. Vous devez en fait, cela ne vous permet pas de communiquer réellement, et c'est une erreur connexion à l'hôte local lui-même. Par conséquent, vous devez modifier le fichier hôte. Ce fichier hôte, vous n'avez pas l'autorisation de le modifier en tant qu'emplacement particulier du président que je vais vous faire savoir maintenant que le fichier hôte, vous devez ajouter une ligne qui en fait, donc qu'il peut se connecter à l'hôte. fichier hôte que vous modifierez sa porte n'a pas la permission, donc vous devez d' abord ouvrir le bloc-notes de cette manière, retour d'argent, vous devez écrire, coureurs les administrateurs vous demanderont où souhaitez-vous autoriser ? Oui. Alors, je le ferai. Très bien. Cette ligne est en fait de un à 7$ un point, puis locale. C'est le format. Et je vais le sauver. Ici. Je vais le sauvegarder par le nom comme avec, ST est forcé. Alors, quel sera son emplacement ? Il s'agira de la liste des recherches du programme C. Je dois aller sur le système C Windows Trente-deux pilotes. Puis EDC. C'est un vétérinaire et je vais devoir le sauvegarder. Et puis c'est le, je dois l'enregistrer ici en cliquant sur Enregistrer. Je l'ai déjà enregistré. En fait, je ne veux plus enregistrer, donc il est déjà vu, il suffit de cliquer sur voir. Une fois que vous cliquez sur Enregistrer, dans ce cas, cela vous sera aligné pour éviter tout problème de refus d'autorisation dentaire. Cela vous permettra de voler. Il n'y aura pas de viable en fait, vous pouvez donc communiquer via cet hôte local. Il s'agit uniquement du paramètre requis. Revenons maintenant à la présentation. Maintenant, nous en avons presque fini. Donc oui, nous en avons fini avec cette communication du serveur HTTP neuf, c' est-à-dire la communication du serveur HTTP Apache avec le contour du navigateur que nous avons vu sur l'idée et l'a exécutée ici. Vous pouvez donc voir comment se déroule la communication et vous pouvez voir modifications très minimales requises par rapport à celle de la communication TCP, il suffit envoyer le message à partir du serveur à client. En pédale formelle, nous avons vu comment, quel est le format de celle-ci et nous espérons que vous l'enverrez. Quelle est la session que nous avons vue ? Comment lorsque vous donnez l'URL sur le navigateur situé au sol Chrome, vous pouvez utiliser n'importe quel navigateur, Firefox, n'importe quoi. Ensuite, comment ce client envoie le message au serveur, il constituera un en-tête. Nous l'avons vu en l' imprimant sur le dessus. L'identité du serveur a vu comment le code côté serveur, qui va écrire. Nous enverrons le message du serveur au client de manière formelle que vous avez vu ou parlé pour envoyer dans l'un ou l'autre des programmes. Et ce n'est pas des décharges de tout ça. Ensuite, le message envoyé par le serveur sera affiché côté client. C'est ainsi que la communication se déroule et nous en avons terminé avec cette session. Merci. Merci beaucoup. 18. Socket Session11 ProgramExecution HttpApacheServerClientCommunication Linux C: Bonjour, bienvenue dans cette nouvelle session. système d'exploitation Polyphemus ne l'avait pas fait, nous allons faire un autre programme pour avoir la communication entre HTTP, serveur Apache, ainsi que la communication client du navigateur utilisant le langage C. Donc, plus tôt dans cette session, nous avons réalisé un autre programme dans le système d'exploitation Linux. Nous avons vu la programmation en utilisant C et C plus pour moi, j'ai fait la communication pour TCP et la communication client. Dans cette session, dans cette session, je vais vous expliquer comment réaliser la communication en ligne sur le serveur HTTP Apache. Voici donc ce que nous allons faire, ce même programme que j'ai fait pour le système d'exploitation Windows en utilisant C plus plus. Vous avez également passé cette session ici, en fonction de vos choix, que le système d'exploitation dispose de fenêtres, vous pouvez enregistrer cette session et écrire le codage pour cela. Devrait être partie à plusieurs croissances que d'éviter une session antérieure. Si vous possédez le système d'exploitation Linux, vous pouvez référencer cette session, mais nous ferons le même programme pour le système d'exploitation Linux. Que se passe-t-il dans ce bord pour vous donner sur Di Salvo, la communication client Rosa, un mélange. L'utilisateur donnera un lien sur le navigateur. navigateur peut être n'importe quoi, Le navigateur peut être n'importe quoi, il peut être plus silencieux qu'il peut être cultivé. Que se passera-t-il dans ce cas, car ce navigateur est une application cliente. Donc, la demande en interne ira à l'Apache, quelque sorte bizarre, sera en termes d'en-tête. Ensuite, le serveur envoie une réponse en termes d'en-tête. Et ensuite, cette réponse sera là avec le message, quel que soit le serveur veut envoyer au client, tout ce qui sera affiché sur la page du navigateur. Nous avons donc vu que nous avons fait cette compréhension du navigateur de serveur HTTP Apache dans notre session précédente, dans notre compréhension de cette session, mais en Islande, vous avez le concept Le navigateur du serveur HTTP Apache décrit comment cela, comment le client enverra-t-il une demande au serveur en termes de format parallèle. Et puis comment en envoyant une réponse à la cliente en termes d' elle qui incarne toutes les explications couvertes en une seule séance. Cette session vous pouvez également en avoir besoin pour ce système d'exploitation Linux, ainsi que pour le système d'exploitation Windows. Et puis j'ai couvert un autre chirurgien pour Windows dans lequel nous avons, nous en avons fini avec la programmation et l'exécution sur les rides d'iode qui feront ici pour Linux, va faire la programmation Polynices et nous l'exécuterons. Mais les combinés, la compréhension des concepts que vous pouvez rapporter la session précédente que je n'ai pas faite. J'ai abordé la compréhension de base de cela, façon dont le serveur et le client Apache communiquent en termes d' envoi de l'en-tête et comment il répond au côté de nos cadeaux. Vous pouvez donc comprendre les concepts renvoient aux sessions précédentes, qui sont rares pour Windows et Linux. Commençons par ici. Comme je vous l'ai dit, ce que nous allons faire ici, j'utiliserai la boîte silencieuse de l'acheteur comme navigateur. Et je vais donner ce lien. Ce lien, que je vais nous donner simplement, vous pouvez, vous savez que ce point 0 point un de 127$, c'est une adresse de bouclage. Je vous ai expliqué. L'adresse de bouclage signifie qu'elle fait référence à l'adresse IP des hottes locales de Lucas ma chaîne. C'est donc mon ordinateur portable partout où je vais donner ce lien dans mon navigateur. J'ai eu toutes les dimensions, ce point de 127$, il rapportera à l'adresse IP de ma machine locale de mon ordinateur portable. Cela signifie simplement que, et c'est le port numéro 80 AT ce navigateur signifie que vous méritez une application cliente. Maintenant, cette ligne va communiquer avec eux. Il est donc décrit l'envoi de ce lien au serveur vers le serveur qui est maintenant la deuxième partie des serveurs. J'ai donc expliqué au cette session précédente peut-être ne jamais expliquer les concepts. J'ai donc expliqué comment ce client enverra ceux qui sont en tête ce que toutes les choses représenteront à portée de main. Si vous devez passer en revue les détails, veuillez signaler ces sections. Ensuite, le serveur enverra une réponse au client. Donc, vous obtiendrez tout ce que le serveur envoie un message sera chargé là-dessus. J'étais chez Brown, j'ai dit que c'était sur la boule de feu. Nous avons donc également effectué la programmation et une autre session pour le système d'exploitation Windows. Maintenant, vous verrez que pour Linux, c'est tout ce que nous allons faire. Il suffit de donner ce lien du côté de l'application, du côté client du côté navigateur, utilisez-le qui est un Firefox. Et puis la demande interne sera envoyée du client au serveur dans la cellule elle-même, je leur donnerai un message en termes de déplacements dans déplacements dans format d'en-tête supérieur du dôme et quel format de corps. Et cela sera chargé sur votre navigateur, quel que soit le message du serveur qui sera affiché sur votre navigateur côté client, quel que soit le message ou si le programme socket, n'importe quoi, quel que soit le message envoyé. Il sera affiché sur la page Walmart. C'est ce que nous allons faire dans notre programme. Ici, c'est juste une explication de ce que je vous ai dit. En termes de doses élevées, vous pouvez y passer. Ensuite, le lingual envoie un produit formel au serveur depuis le client. Et en réponse, je vais contracter le message, le crédit et le corps formels. Si vous devez signaler le format approprié en-tête et du corps référencé à la session précédente comprendre le concept de programme. Programmation pour le plan du serveur HTTP. Vous pouvez simplement comprendre, passer par cette session pour comprendre le concept plus en détail. Ensuite. Ce n'est que la tête, un format qui est envoyé du serveur au navigateur. Ce n'est donc qu'un format que j'ai envoyé, que j'ai affiché ici. La barre latérale détecte quelle que soit la ligne décroissante ou que vous donnez une URL donnez une URL du côté client certifiable sur le terrain. Ensuite, la demande sera envoyée du client au serveur. Les fermes sont parallèles. C'est ce que le serveur enverra une réponse en cas de déclin, et il s'agit de toutes les réponses. Il s'agit donc du type de réponse du format tête et corps. Ici, vous pouvez voir que je vous ai dit plus disparate n'est pas dans les cheveux déterminés que le serveur envoie au client, veut appeler la version du protocole que nous utilisons le HTTP puis le statut, qu'il soit réussi ou non, les numéros d'état, le message d'état. Ensuite, il y a des détails, c' est-à-dire le serveur de dates, puis ce type de contenu de type de contenu. Puisque dans notre cas, dans notre programmation, nous enverrons, enverrons un format texte simple. Nous enverrons un message simple, n' enverrons pas l'image du serveur au client. En réponse, nous mentionnons que leur type de contenu est texte HTML, lipide était une image, puis c'était différent. Il avait Nous enverrons simplement des détects comme une réponse du serveur à l'autre. C'est pourtant la raison. Cet en-tête qui sera présent et envoyé du serveur au client sera endoderme. Le type de contenu sera le texte, HTML et le len, quels que soient les octets de données que ces sédimentaires tendent à décliner dans ses liaisons que nous devons mentionner ici. Ensuite, une ligne blanche qui est un peu et ce corps, ce corps, nous enverrons le message d'un serveur à l'autre , donc nous avons besoin de tension. Vous pouvez vous dépasser. Vous pouvez comprendre que c'est de l'eau. Ceux-ci ont toujours été envoyés au client. Ensuite, vous obtiendrez la page chargée. Ensuite, passez à la prochaine chose. Ici, tout est ici, comme lors de la précédente session sur ce système d'exploitation Linux. Lorsque nous avons fait la communication pour le client serveur TCP, que faut-il pour le client serveur HTTP ici, si vous comparez avec la session précédente rencontrée et que nous avons été système d'exploitation de sainteté pour la ligne de serveurs TCP. Il n'y a pas beaucoup de différence dans ce HTTP sur la communication numérique parce qu'il assemblait, nous avons ajouté les stolons. Nous devons donner le message. Si nous envoyons un message, il devrait être de ce type. Autrement dit, il devrait contenir le corps Hadean Haydn. Vous pouvez voir qu'il doit contenir l'en-tête. Cet en-tête. Il s'agit de la vue diagrammatique. On dirait que ça ressemble à ça. La version, puis le numéro d' état du message d' état et tous ces détails, le type de contenu, le contenu, le lin, la ligne vide, puis le corps. Nous devons donc nous écrire notre code. Nous n'écrirons donc ici que le code du serveur alors que le serveur HTTP, nous n'avons pas besoin d'écrire le code client. Tout en faisant cela ou en programmant. Client seulement nous devons donner un lien sur le routeur le dette et du côté serveur, vous devez écrire ce code et nous devons envoyer ce message. Et fermier, je n'ai pas fait de corps, ce que j'ai mentionné dans ce diagramme. Lorsque le service, Cela veut monter, cela devrait signifier plus chaud. ne s'agit que d'une modification. Si vous devez atteindre cet institut de communication, si bien incliné, vous devez donc ajouter ce message en plus. Ce que nous allons faire pour comparer à la session précédente pour le client serveur TCP, ce que vous devez boire, c'est simplement envoyer un message au serveur. Que va-t-il se passer ici ? Si vous comparez ce programme avec ce message HTTP au serveur en termes d'URL. Et puis cela sera interne, sera en termes de format d'en-tête, il aurait dû être couvert lors de la session précédente pour comprendre le concept de cela. Ensuite, ce serveur a ensuite dit à propos de la disponibilité. Envoyez donc un message dans une vidéo datant du message du site client disponible. Écrivez également le message sur la prise. C'est donc notre modification et quels sont les messages de ce type ? C'est de ce format. Il s'agit de la densité de version du protocole HTTP, ce numéro, des numéros d' état, du message d'état, puis de la terre du contenu, quantité de données qu'il transfère depuis le solaire a pris ligne, puis le type de contenu où il y a un excès de GM, puis de corps. Ensuite, vous pouvez voir une barre oblique et c'est une ligne vide, un corps et un corps. Oui. Bonjour, quel que soit le message que vous écrivez ici sera transmis au client en réponse. C'est donc une chose supplémentaire que nous ajouterons pour le serveur ou le client HTTP si vous comparez avec la programmation précédente pollinise dans laquelle la FDA, PCP plusieurs neuf et agitent tous les bateaux. Idem si vous avez comparé ce que nous avons suivi lors de la session précédente. Commençons maintenant à programmer la laideur en utilisant le langage C comme moi pour atteindre le système d'exploitation Linux. Systèmes d'exploitation Unix. J'espère donc que vous avez eu cette domination ou que nous passons simplement au code que j'ai déjà écrit. Le code est un code pour HTTP. Juste une seconde. Laissez-moi faire les choses avec le genre. Il s'agit d'un tableau de bord pour le serveur STDEV. Puisque je vous ai dit que nous devons simplement écrire le code côte à côte, pas pour le côté client, côté client, nous donnons probablement un lien. C'est-à-dire que, comme je l'ai mentionné, vous finissez avec un point indigent de 127$, et le numéro de port, c'est un 018. Il indiquera que le client signalera la même machine hôte locale que celle que j'avais sur le serveur en cours d'exécution et la même variable de numéro de port. Alors, quel est le mien aussi ? Laissez-moi ouvrir ça. Comme je vous l'ai dit, quelle sera la différence ? Si vous comparez, si vous avez vu le système d'exploitation Linux, ces fichiers d'en-tête via la programmation de socket de modèle. Il s'agit d'une fonction principale qui est l'entrée pour lancer une exécution de votre programme. Toutes les choses qui sont répétitives, c'est-à-dire encore une fois, sont sous Linux. Je vous ai dit cette fonction socket, que nous appellerons tout d'abord, les messages et arguments seront cette famille d'adresses Internet. Second argument flux de données correspondant à un type de socket. Et le troisième, le groupe d'abnégation est bien égal à 0. Que reviendra-t-il ? Il retournera la poignée de socket Laissez-nous le serveur. Et ici, il sera de type et a commencé le cas de Linux. C'est la lumière de l'instructeur qui est utilisée pour remplir les détails afin que le serveur, quelle adresse IP et numéro de port à nouveau . Nous avons donc eu cela, nos corps y achètent aussi, en particulier par adresse IP et numéro de port et cette structure nous pouvons ressentir un peu en arrière l'adresse IP et le numéro de port. Vous avez assez ici dans ces trois lignes, vous pouvez voir celle-ci. Où appelez-vous la fonction mienne ? Vous passez cette poignée de la prise que nous avons ici et nous analysons cette structure. Et puis nous appelons «  Écoutez, écoutez ». Je vous ai dit qu'il s'agissait d'une prise, d'une poignée et de 0. Cela signifie combien de connexions de ligne doivent être présentes dans la file d'attente. Donc, nous ne voulons rien lire dans la lecture que vous avez fait 0 V mal fait. Vous pouvez multiplier en fonction vos besoins et du numéro de commande qu'il a fait avec les raisons pour lesquelles nous faisons membres du comité de communication recommandés par X GTP. Nous l'avons fait en tant que mien pour ce numéro de port. Par conséquent, si vous parlez de GDP par HTTP, puisque je vous l'ai dit, cette extrémité de message sera envoyée du côté serveur lors de notre session précédente. Puisque nous avons couvert ce que le serveur TCP et la communication, seules les cartes qui mangent ce que le client sent. Vous pouvez donc faire n'importe quelle complication qui était un outil de communication de chant où vous pouvez également envoyer depuis le soleil était du côté serveur. Et vous pouvez également lire et écrire du côté client, rectus, selon vos besoins. Ici, puisque peu importe ce que le client lui envoie un message, je vais y répondre. Et cette réponse, elle devrait être en termes d' en-tête et de corps. Je vous ai donc expliqué dans la présentation ainsi les détails de l' hybride et plus encore. Pouvez-vous passer par les quelques séances que j'ai entendues avant et dont j'ai abordé compréhension de ce qu'est le PIB, plusieurs communications avec les clients. Vous pouvez passer par cette session. C'est courant pour Windows et polynom. Voici ce qui n'envoie pas le message, ce message de Dieu s' initialise avec cette valeur. C'est que HTTP 1.1 ne connaît pas l' état, le nombre de statut, message, puis le contenu à la demande de succès . Combien de temps il est, 47 et puis il y a du temps, c'est un humain. Ensuite, dans la barre oblique et il y a une nouvelle ligne, il y a une ligne vide, puis nous passons ce message. Mais il s'agit d'un serveur de grosse caisse côté client. Ce message ici, ce que nous avons plus tôt, lorsque nous arriverons ici, nous enverrons ce message plus tard. Nous m'enverrons comme une simple connexion à partir des fichiers du site client à nouveau la tangente de socket , puis cette structure. Et puis nous obtenons une nouvelle poignée de prise, un nouveau descripteur de socket. Ainsi, ce descripteur de socket qui est nouveau sera engagé dans les opérations de lecture et d'écriture avec cela sur la ligne. Alors que les personnes qui reviennent ici seront engagées à se connecter à cette ligne. Donc c'est ce qui, et puis ces tristes ce qui est lu quelles que soient les lignes et le message qui est ascendant ou URL, c'est un à plusieurs, 7,010$ point un et les anciens chiffres, sorte que lien qui est un lien local ou l'ordre avec eux, il nous enverra un message sera converti en paradata formel en fait, et il rapportera, il sera transmis au serveur et neveu et vous collecterez ici au numéro quatre, vous pouvez simplement imprimer ce tampon côté serveur afin d'obtenir toutes les données en crédit formel que les clients et serveur-1 me donnent le lien sur Firefox. Mais aussi dans le pistolet inversement, qui enverra une réponse. Vous pouvez donc voir que nous avons écrit ce code supplémentaire ici. Par rapport à l'écriture de code précédente, nous appelons la bonne fonction du côté argent en analysant cette poignée de descripteur sur la socket, ce message en fait et lorsque le message est simplifié, ce message est le même que celui que nous avons vu. Il y a ce message, ce message descend du serveur au client en réponse. Vous pouvez voir que nous appelons donc la bonne fonction du côté serveur, traitant la poignée de socket et ce message. Ensuite, nous vérifions les erreurs. La façon dont la communication se déroule est déformé. Compilons donc le code et donnons un lien sur le navigateur ou Firefox et voyons ce qui se passera côté serveur. Permettez-moi de poster le score compilé par, puisque nous écrivons le code qui ferait le point c du serveur HTTP GCC . Vous pouvez voir ici un point est créé, il suffit de le lancer. Vous pouvez donc voir en haut de la page Quelle est l'idée d'écouter les connexions entrantes. Qu'est-ce que l'écoute de la connexion entrante ? Maintenant, ce que nous allons faire, nous devons toujours poster le lancement de notre serveur. Et puis nous avons boo-boo que les communications côté client, c' est-à-dire sur le navigateur ici, nous utiliserons Firefox. J'ai mis en hyperlien $127 point un et le numéro de port. Et puis de façon dentaire, vous avez ajouté ce que le client que nous avons fait du côté de l' application, côté client, ce client enverra une demande aux saccades informées du trottoir. Donc, quel que soit le déclin inquiétant, vous enverrez une demande au serveur à partir de laquelle nous allons lire sur le serveur. Vous pouvez ainsi voir le message imprimé sur le serveur, quel client envoie sous les formulaires Al-Qaïda et le serveur enverra un message au client. Et vous pouvez voir comment le navigateur, la page sera chargée avec ce message comme ce qui est envoyé en réponse au déclin. Voyons un par un. Laissez-moi d'abord ouvrir ça. Vous vous élargissez sur Firefox sur le site de l'application. Vous pouvez voir comment ce jeu de message du côté de l'application, du côté client, du centre de trottoir d'eau. Revenons au terminal et voyons ce que toutes les choses ont été imprimées des deux côtés. Nous pouvons donc voir ici ce qui s'est passé après ce que l'on appelle du côté serveur que nous avons ou nous avons exécuté cette application serveur. Exécutez, nous avons R1, désolé, côté serveur, c'est ça. Nous avons reçu ce message à l'écoute de la connexion entrante. Ensuite, du côté client, nous avons donné ce lien qui est 127 points un côlon t. Donc rien n' était mort et la plage, c'était juste ce gâchis. Ce lien que nous avons dit, nous avons donné sur ce Firefox, c' est-à-dire le côté application, côté client, ce lien, qui provient de ce message, Dieu, Dieu envoyé du client au serveur en crédit formel. Et puis NACADA, nous avons imprimé notre cure de désintox côté serveur. Vous pouvez voir que c'est sombre. C'est l'en-tête en fait dans neuf états. Tout ça va se diriger. C'est un en-tête quel client ? Client sur le serveur. C' est donc en avance sur ce format, c'est l'agent utilisateur hôte et existe et tous ces détails. Donc, si vous devez connaître ce détail de la réponse d'en-tête du client au menu du serveur, donnez n'importe quel lien sur ce combat ou faux mais opposé. Et vous allez à la session précédente qui comprend que sticky est comprend que sticky une communication client de serveur de partie, vous passez par cette session, mais un inexpliqué savait ce que tout en-tête contient des régresses et du client en site et la réponse n' était pas un vrai client en termes d'en-tête et de corps. Vous pouvez donc passer par cette session. J'espère que vous y serez parti et que vous allez suivre toutes ces sessions de façon séquentielle. C'est ce que vous obtenez du client, terminera ensuite par une réponse du côté serveur lorsque nous envoyons le message sur le côté de notre code, nous les avons écrits et la programmation de socket d'apprentissage en toute sécurité , ce qui est envoyé au client. Et c'est ce que nous voyons apprendre à programmer des sockets. C'est ce que nous avons fait avec cette communication. Communication client Http. Nous avons fait dans ce système d'exploitation Linux utilisant la lecture du langage C vous devez écrire de chaque côté de notre tableau. Maintenant. Merci. J'en ai fini pour cette session. 19. Socket Session12 Blocage : Ne bloquer pas de Blocking MultiClientServer sélectionnez 1stHalf: Bonjour les amis. Aujourd'hui, nous allons voir des prises bloquantes et non bloquantes. Quels sont les avantages de l'utilisation de ces prises ? De plus, nous verrons l'utilisation de select. Ce que cette sélection et quelle est son importance seront de sonner ces choses dans une session artistique ainsi que lorsque nous verrons comment réaliser communication multiligne avec les serveurs dans Lena en une communication multiligne avec les serveurs dans Lena en utilisant le langage C. Commençons un par un. Blocage ainsi que les prises non bloquantes. Mode bloquant et non bloquant. Dans le cas de la prise. Le socket peut être en mode bloquant ou non bloquant. En savoir plus sur le mode de blocage post, le mode par défaut de l'appel de socket bloque l'âme. Au cours de ma formation, je vous ai expliqué comment créer un socket. Nous avons vu que lorsque nous trouvons plus de la socket créée, il y aura le compartiment. Ça veut dire quoi, qu'est-ce qui bloque ? Appelez ce c. Supposons donc que vous appeliez la fonction. Tellement sec est un charbon qui bloque le charbon. Vous pouvez ensuite effectuer cette lecture sur votre socket. Chaque fois que les données sont dans la facture de votre socket, vous ne pouvez effectuer que l'opération de lecture à partir de la socket. Dans ce cas, si ce n'est pas un flic n'est pas sur la prise, que se passera-t-il si vous appelez une fonction ? De toute évidence, il doit attendre que les données arrivent sur le socket pour pouvoir effectuer l'opération de lecture. C'est donc des hommes, il n'a pas besoin d'attendre. Ensuite, vous effectuez le support de blocage des appels. Il est en train de violer. Il attendra que les données arrivent sur le socket afin de pouvoir exécuter l' opération de lecture avec succès. Il ne revient pas immédiatement. Il s'agit de verrouiller le code. Cela signifie que, supposons que dans votre programme je lutte contre les lignes d' instructions et vous exécutez certains patients et entre les deux, vous appelez une fonction. Il vérifiera si les données sont disponibles sur la prise. Oui, alors il lira à partir de la prise et il reviendra au moment du coucher lui-même. Mais s'il n'y a pas de données sur la prise, elle attendra le médicament. Donc, au moment où cela bloquera le fonctionnement de votre programme. C'est quoi le code de blocage ? C'est donc l'un des exemples que je vous ai expliqué qui concerne un appel bloquant. L'exemple, le même exemple que je vous ai donné, que je vous ai expliqué en détail. Autrement dit, si vous effectuez le coup de lecture, il ne reviendra pas avant que le boeuf tel que disponible sur la douille soit rouge. Il s'agit du mode de blocage. Voyons donc ce qui est le mode non bloquant est la définition d'une seule ligne neuf. C'est-à-dire que ces fonctions l'ont exécutée immédiatement en mode non bloquant et que vous appelez la fonction de lecture. Que se passera-t-il s'il n' y a pas de données sur la prise ? Pourtant, il n'attendra pas. Il retournera immédiatement, c' est-à-dire des données, puis il lira les données et retournera un temps mort. Peu importe si les données sont présentes sur le socket. Ce sont des fonctionnalités, il n'attendra pas. En fait, il n'y a pas de données, elles reviendront immédiatement. C'est lorsque vous faites que votre socket est en mode non bloquant. Dans ce cas, il reviendra immédiatement sans attendre qu'un événement soit terminé. C'est notre mode moule et non bloquant. Vous avez donc compris le mode de blocage et le mode non bloquant. Voyons maintenant comment réaliser une communication multiligne avec des serveurs. Et c'est ainsi que nous allons couvrir tout ce que nous avons déclaré dans la toute première diapositive. Comment réaliser une communication serveur multicloud. Donc, ce que nous faisons, comme nous le savons, la façon simple de gérer les multiples clients qui se multiplient, c'est simplement créer une nouvelle astuce. Mais chaque nouveau client est connecté au serveur, car nous savons qu'il n'y a qu'un seul serveur, puis sur plusieurs clients. Donc, le médecin avec un seul serveur, qu'il peut s'agir de n'importe quel nombre de clients. Ainsi, dans le cas des clients multiples, la façon simple de communiquer entre le serveur et le client est ce que nous faisons. Nous avons créé un thread pour chaque nouveau client connecté. Quel est donc le problème avec cette approche ? La création d'un nouveau thread pour chaque client qui essaie de se connecter avec nous et que nous sommes l'un des problèmes peut survenir. Voyons le détail dans la cellule urinaire. Cette approche n'est pas recommandée en raison des démarches de course à pied ci-dessous. Le tout premier inconvénient de créer le thread pour chaque contrainte client pour se connecter au serveur est, tout d'abord, que nous savons qu'en cas de menaces qu'elles sont difficiles à coder chaque contrainte client pour se connecter au serveur est, tout d'abord, que nous savons qu'en cas de menaces qu'elles sont difficiles à coder. comme débogage, et parfois ils ont des résultats imprévisibles quand tout est question de menace. Ensuite, ce problème, ou ce qui se dirige vers les contextes. Qu'est-ce que ça veut dire ? Cela signifie que supposons que vous ayez affaire à un thread et que vous devez maintenant traiter avec un autre fil à ce moment-là. Vous devrez donc passer d' un thread à un autre thread trouver x, donc il y a un surcoût. Il faut donc un certain temps pour passer d'un thread à un autre. C'est donc le deuxième inconvénient de l'utilisation de la grille. La pensée ou les inconvénients qu'il n'est pas évolutif pour un grand nombre de plantes ou s'il y a certain nombre de lignes dans ce cas, ce sera, ce n'est pas un assez visible pour créer un thread pour chaque client afin qu'il ait une communication entre cet ovale. Et le problème vient aussi dans l'impasse. impasse signifie que chaque fois que plusieurs personnes veulent la même perte, nombreuses menaces multiples veulent le même verrou en même temps. Et c'est l'impasse qui se produit. Donc, ce sont les inconvénients de l'utilisation des fils sur chaque plan communique avec la paroi cellulaire. C'est pourquoi nous connaissons notre objectif pour cette approche consistant à créer un fil conducteur pour chaque client. Quelle est la prochaine chose que nous pouvons essayer de surmonter avec ce fil ? Bien que ces inconvénients fonctionnent sur le thread, la prochaine chose est de ne pas sélectionner l'escroquerie, faire des appels sélectionnés. Et quel est cet objectif sélectionné ? Quel est son objectif et son utilisation ? Voyons tous les détails de l'appel sélectionné. Et plus tard, vous verrez comment Monica sélectionner un appel. Et nous verrons également le programme et exécuté n. Donc une meilleure façon de surmonter avec ce problème de fil de film est la fonction de sélection des collègues. Voyons donc comment l'utilisation de la fonction de sélection. Nous devons donc sélectionner la fonction d'un ensemble de sockets à partir duquel nous voulons lire, en fonction du paramètre de délai d'attente, tous. Lorsque vous avez terminé presque immédiatement avec un ensemble de ces prises, il est prêt à être lu. Qu'est-ce que cela signifie ? Que signifie cette définition ? Que vas-tu faire ? Il existe donc une fonction de sélection. Vous allez appeler une fonction de sélection. Je vais donc vous expliquer en détail à l' avance comment utiliser cette fonction de sélection passera la configuration, les prises dont nous ne serons pas lus. Il s'agit donc d'un examen qui suppose que vous souhaitiez effectuer l'opération de lecture sur des prises différentes. Vous avez donc la liste des sockets de modèle sur ce que toutes les sockets se trouvent dans lesquelles vous devez effectuer l'opération de lecture sur les deux sockets. Vous passerez donc la liste de ces prises et ne sélectionnez pas la fonction. De plus, vous mentionnerez également le délai d'attente. De quoi s'agit-il ce délai d'attente ? Cette démo est comme, supposons que vous décriviez un certain temps dans ce délai d'attente. Cette fois-ci, la fonction de sélection sera en usine pour notre n surveillera toutes celles que vous avez fournies dans le moniteur de fonction de sélection. Jusqu'à ce moment-là. S'il n'y a pas eu de calendrier entre cela. sockets ont reçu des données n'importe quel jour, reçoivent sur n'importe laquelle des prises que vous avez données dans cette fonction de sélection. Ensuite, il reviendra en fait avec toutes les sockets que vous avez mentionnées, qui ont leurs données à lire. Cette démo est donc donnée ici jusqu'à ce que le climat des devoirs ait besoin d'attendre. Supposons que vous donniez le délai d'attente de trente secondes. Vous donnez, donnez cette socket en fait dans l'arborescence d'analyse de la fonction de sélection. Ainsi, tous les types de sockets dans lesquels vous souhaitez effectuer une opération de lecture et vous avez donné le délai d'attente en secondes. Donc, dans cette partie des secondes, ce sera 40 secondes, trente secondes maximum. Et il verra en fait laquelle de ces prises reçoit n' importe quel délai de brevet de date. Plus de données sont reçues dans ce cadre, puis elles seront renvoyées. Ce délai d'attente se produit. Mais entre ce délai d'attente, avant 30 secondes lui-même, certaines des sockets ont reçu des données, donc elles retourneront réellement quand le délai d'expiration se produira, il reviendra avec toutes ces sockets, qui est lourd sur cette prise pour qu'elle puisse être lue. J'espère que vous avez compris ce que j'explique. Une fois qu'il revient avec toutes les sockets dont les données sont présentes sur la socket. Dans ce cas, vous pouvez immédiatement effectuer une action. Vous pouvez immédiatement effectuer une opération de lecture, car nous savons que les données sont disponibles sur cette socket, de sorte que vous n'avez pas besoin de lire. C'est le but de la fonction de sélection. C'est ainsi que nous réalisons l'âme. Et le détail de cette fonction de sélection Omics étant ici également. Voici comment faire le détail comment l'utiliser. Quels sont tous les arguments de cette fonction de sélection. Jusqu'à présent, c'est dur. Tout ce que nous avons VI plutôt que de charger les trois séries. Dans cette utilisation, je ne vous ai expliqué que l'utilisation réelle de la sélection est le week-end passe les trois que nous pouvons charger les trois ensembles. Un ensemble sera pour l'autre ensemble pour le bon, et l'analyse sera pour la section suivante. Alors, quel est cet ensemble ? Ce sont les jeux, ce qui signifie qu'il s'agit des descripteurs de fichiers. Vous pouvez simplement dire que les ensembles signifient la liste des descripteurs plus forts. Vous pouvez effacer la liste des descripteurs dans lesquels vous devez effectuer l'opération de lecture. Qui peut créer la liste des descripteurs que vous avez possédés et vous devez effectuer la bonne opération et la liste des descripteurs pour l'exception. Donc, de la place. Supposons que vous ayez mentionné cinq sockets en fait une liste de descripteurs sur les descripteurs de fichier lorsque vous devez effectuer l'opération de lecture, vous devez surveiller l'opération de lecture a été effectuée dans l'un de ces éléments. prises de tuyaux, n'importe lequel d'entre eux doit tromper deux ordonnances à l'un d'entre eux ont reçu la date dessus afin que vous puissiez effectuer. Vous ne prêchez pas comme lire uniquement les chefs de file de ce problème. Parce que vous avez mentionné que vous devez effectuer la bonne opération sur la prise. Et un autre descripteur d'article défini pour l'exception. Si vous passez ces trois ensembles dans votre fonction de sélection, nous verrons dans le programme lui-même, cela vous expliquera comment les utiliser. Ce n'est qu'une description avant de démarrer le programme, écrire le programme et de l'exécuter, nous cherchons simplement plusieurs choses sont nécessaires si vous appelez la fonction de sélection. Et c'est un facteur très important pour parvenir à une communication multiligne de serveur afin d'obtenir une décision plus large un jour. Ainsi, créer un fil de discussion pour chaque connexion client agira sur l'âme. Ce sont les trois choses qui doivent être réinitialisées. La prochaine chose que vous mentionne à propos du Select, il testera ces socket, c'est n'importe quoi. Donc, en ce qui concerne les prises, on vous donne ces trois sets. Il indiquera les prises et vous signalera celle qui est prête pour ces opérations. Cela signifie que les ensembles que vous avez mentionnés vous permettent d'auditer votre fonction Select. Ceux-ci lisent, écrivent une exception. Vous donnez donc la liste des descripteurs de socket dans lesquels vous souhaitez effectuer ces opérations et vous donnez également un délai d'attente. Il verra que mourir dans ce délai d'attente, si l'une de ces prises est prête pour le fonctionnement en lecture et les prises que vous avez mentionnées dans le jeu de descripteurs sont prêtes, n'est-ce pas ? Il est prêt pour les exceptions. Enfin, la fonction de sélection, nous reviendrons avec ces prises. Je suis prêt à effectuer ces opérations. J'espère que vous avez compris ce point et cela vous rendra plus clair une fois que nous commencerons à écrire un programme, puis la prochaine chose à propos de la fonction de sélection est et cette information, nous pourrons ensuite traiter le prises qui sont prêtes oui, et ignorent le reste du temps. Qu'est-ce que cela signifie ? Cela signifie que C, vous analysez une liste de socket des descripteurs. descripteur de socket doit effectuer une opération de lecture, exemple l'ordre phi de la socket. Les descripteurs de socket que vous analysez, fonctionnent correctement et que vous ne transmettez rien pour l'exception, supposons que vous transmettiez la valeur NULL. Dans ce cas. Vous mentionnez également que je suis dehors dans une minute. Au cours de cette minute, que tous les descripteurs sont prêts. Quand je parle de prêt, cela signifie que c'est une opération de lecture. Alors, évidemment, il devrait y avoir des données sur la prise. La prise, nous serons prêts à le lire. Le délai d'attente que vous avez mentionné en fait le délai d'exécution qu'il surveillera en fait tous ces ensembles de descripteurs. Je suis prêt pour l'opération de lecture. Nous avons déjà une opération d' écriture, donc il n'y a pas eu chacun d'eux et il retournera des informations. Nous parlons donc de la même chose, puis signifions que les informations que nous pouvons ensuite traiter les informations sur les sockets, lesquelles sont prêtes à être lues, écrites et toutes finissent dans deux maisons le fonctionnement de celles-ci lire enfin l' écriture, donc c'est ce qu'il dit. Traitez ceux qui ont déjà été traités et ignorez cela. allons dessiner et nous devons ignorer le reste déjà fait. En traitant de manière sélective, les prises ne sont même jamais bloquées. Donc, dans ce cas, nous ne serons pas bloqués car il n'a sélectionné sélectivement que les prises, qui sont déjà la forme polaire. Nous ne devons donc attendre que le temps que vous avez mentionné dans le délai d'attente en paix de la fonction de sélection, nous verrons le détail jusqu'à ce moment-là, vous devez attendre réellement, et tout ce qu'il donne aux descripteurs que vous devez déjà effectuer l'action là-dessus. Vous devez y aller en fait et éviter d'utiliser le thread, ce qui est un excellent surcoût utilisant le thread que nous avons vu dans la diapositive précédente. Maintenant, il s'agit d'un nœud qui vous revient, il s'agit donc d'un paramètre de délai d'attente. s'agit donc de la fonction de sélection sur il y a une rétrogradation, mais dans le cas où la fonction de sélection par cette fonction rétrogradée par diamètre est nécessaire et sélectionnez la fonction. Il est nécessaire de contrôler la durée de lecture de l'action. Prise de support prête à être lue. Cela signifie que par le mode STI, par diamètre est requis dans la fonction de sélection. Ce sera juste, c'est nécessaire pour que vous deviez attendre ce temps. Les descripteurs que vous avez donné à votre jeu de descripteurs, ensemble de descripteurs que vous lui donnez, vous devez attendre le délai d'attente que vous n'avez pas mentionné et vous avez perçu si l' un d'eux est prêt. Jusqu'à ce moment-là, il y a une raison de rester en mode aussi important. C'est ainsi que vous contrôlez réellement combien de temps vous avez besoin d' attendre après ce temps d'arrêt. Alors qu'est-ce qu'il va renvoyer la liste thrombus. Le script sait lequel est déjà quadratique, celui que j'ai déjà lu et tous ces détails. Maintenant, il s'agit de la définition réelle de la fonction de sélection, comment les utiliser. C'est donc juste une déclaration ici que vous pouvez voir int select et ces arguments sont présents ici. Alors, quel est le premier et un humain ? Vous pouvez voir dans les moyens qu'il s'agit d'un nombre entier de type de données n MDS. J'ai décrit ici les détails que nous verrons ici. Comme je vous l'ai dit, les phrases descriptives sont définies pour les descripteurs. C'est l'ensemble FD. Il s'agit du type de données réellement pointé jeu vide. Ce descriptif satisfait à des fins de lecture. Cet ensemble descriptif est destiné à l'écriture, et cet ensemble descriptif est une exception, un objectif. Et il s'agit de la valeur finale du délai d'attente que vous devez redonner d'attente que vous devez redonner au temps nécessaire pour lire et protéger lequel des descripteurs de ces ensembles est réellement prêt pour l'opération. Voyons maintenant un par un ces arguments que vous devez passer. détails de vos arguments de données sont là. Le premier est int et MDS, c'est celui-ci, MPS. C'est donc ce qu'en fait, il s'agit du descripteur de fichier le plus élevé dans l'un de ces trois ensembles plus 11 valeurs qu'il aura. C'est donc tout d'abord, puisque je vous explique, le système d'exploitation Linux, car les sélecteurs utilisés pour Linux, il est également utilisé pour le bouton Windows. Dans le cas du Linux en fait, nous aurons cet argument supplémentaire qui est NDF et NMDA est rencontré dans. Cela signifie en fait la valeur qu'il aura. Puisque vous deviez avoir cette liste de ces descripteurs pour lire la liste des descripteurs pour l'informatique. Et nous allons faire tomber ce script d'abord exception. Donc, dans celui-ci, nous aurons une valeur plus élevée plus une. Ils vont vous donner ça. Et le NMDA est un descripteur de fichier. Donc, ce qu'il dit, c'est le nombre le plus élevé de descripteur de fichier dans l'un des trois ensembles plus la marque. La chose habituelle que vous ne puissiez transmettre la taille du jeu FD comme valeur de cet argument en fait, car cette macro vous donnera la valeur entière qui est un grand nombre de descriptifs dits plus un. C'est à propos de cela, comme je vous l'ai dit, c'est pour le système d'exploitation Linux, cet argument supplémentaire est là. Mais dans le cas des fenêtres, ce paramètre est ignoré. Il s'agit d'un AINS de la PNHD. Pourquoi est-ce ignoré ? Parce qu'il s'agit des jeux descriptifs, l'ensemble qui est le type de données FDI souligne sec. Ainsi, dans le cas des fenêtres, ce FD s'est réglé, puis la moitié des prises, ainsi que le nombre de prises. En fait. Par conséquent, puisque cet ensemble vide dans cas de Windows a les détails sur le nombre de sockets et donc cet argument qui ne sera pas que dans le cas de ceux-ci , il n'est que sous Linux. Parce que dans le cas de Linux, seule cette valeur est maintenue à cause de l'ensemble vide, ce que nous verrons au moins ce que cela fait , et c'est le type de données de l'ensemble descriptif. Cela n'aura pas de détails sur le nombre de prises. Dans le cas de Linux qui va simplement sélectionner la fonction a ce détail ici. Mais dans le cas des fenêtres, nous pouvons ignorer cela. L'humain est ignoré car le nombre de sockets est décrit dans chaque ensemble. Donc, ce détail, nous verrons une tête. C'est une défense. Vous vous souviendrez que dans le cas de Linux, il s'agit de l'argument, argument supplémentaire, mais de la fenêtre MBSR, ce n'est pas présent. Je veux dire, revenons à cet argument. Nous en avons donc fini avec le premier argument. Voyons l'autre humain. Pour l'homme fait chaque pointeur défini, le pointeur vers le centre des prises doit être vérifié pour la lisibilité. Je vois une option par exemple. Souvenez-vous donc toujours qu' il n'est pas nécessaire de passer cette valeur. De plus, vous devez passer cette valeur, vous devez passer ce lieu pour qu'il le puisse, n'est pas de la contrainte en fait. Donc cela peut arriver en fait, vous avez avec cette valeur qui est manquée sur ce script va qui a rencontré et vous devez surveiller l'opération de lecture. Cette valeur peut exister, mais ce n'est pas le cas. Et c'est aussi fondu et cela peut se produire réellement. Donc, même cela peut être nul en fait. Et vous pouvez avoir la valeur du nombre de descripteurs lorsque personnes sont allumées , cela va être nul. Ces deux choses peuvent être là et ce rose vif et donc elles sont les mêmes. C'est une chose facultative. L'un d'eux devrait être réglé en fait. Vous ne pouvez pas les mettre comme aucun. C'est donc le truc. C'est ce qu'un optionnel a pointé vers un ensemble de prises à vérifier pour AWT, car je l'ai dit, c'est ce que je pense que marionnettes et le pointeur de graisse optionnel un ensemble de prises peuvent être vérifiés. corps. Quelle liste des prises que vous voulez vérifier, n'est-ce pas ? La capacité encore une fois, sauf, je sais que 10 c'était des prises de configuration à vérifier dans des conditions exceptionnelles. Dernier argument qui est le délai d'attente. C'est cette structure, le pointeur vers elle, c'est le temps o. Quel est son but ? Comme je vous l'ai dit, le taux maximum ou nul, bloquant ou patient. Pourtant, il est dit donc supposons combien de temps vous voulez attendre, en fait la fonction de sélection, je dois attendre ce temps-là. Il attendra réellement, et il surveillera les descripteurs. Ces descripteurs que vous avez mentionnés vous permettent de surveiller la survenue de l' événement. Autrement dit, si c'est le cas, nous surveillerons l' opération de lecture s'il s'agit d'un port de moniteur idéal, n'est-ce pas ? S'il est supporté, je surveille le popcorn. Mais jusqu'à ce que vous ayez mentionné dans votre délai d'attente, une fois ce délai terminé, il reviendra s'il n' y en a pas jusqu'à ce moment-là. S'il n'y a pas de descripteurs, sachez que les prises sont prêtes à subir un dysfonctionnement annuel et qu'elles sont démodées ou ce qu'elles retourneront. Valeur Null. Il reviendra en disant qu'aucun d'entre eux n'est prêt, puis il reviendra. C'est à peu près cela. Mais si vous réussissez, si vous êtes directement, ne donnez aucune valeur en cas de délai d'expiration que vous venez de mentionner comme nul. Cela signifie qu'il s'agit simplement de continuer à attendre si vous passez ce menu comme analytique, il continuer à attendre si vous passez ce menu comme analytique, suffit de lire n'importe lequel de ces descripteurs, ces prises sont prêtes pour n'importe lequel des fonctions. Il peut donc aussi s'agir d'un retrait, d'un temps indéfini, temps infini s'il n'y a pas de données présentes sur la socket, rien à écrire sur la socket, rien, pas de telles choses. Il continuera donc à lire et à lire si vous transmettez cette valeur comme null, mais si vous transmettez une valeur et cette fois-ci, jusqu'à ce moment-là, elle reviendra à la et le délai d'expiration sera alors écoulé. Mais si vous passez comme nul, il continuera d'attendre. C'est donc ce qu' il dit ici. 20. Socket Session12 Blocage : Ne bloquer pas de Blocking MultiClientServer sélectionnez 2ndHalf: Quels sont les détails la fonction de sélection et que rentre-t-elle ? La même chose qui est, que revient-il ? Donc, une tonalité auditive. Qu'est-ce que cela signifie ? Nombre total de prises prêtes. Donc, s'il renvoie un audit supérieur à un, cela signifie combien de descripteurs de football sont prêts ? Combien de prises sont prêtes ? En fait, cela donnera cette valeur. S'il renvoie 0, cela signifie que la limite de temps a expiré et, jusqu'à ce moment-là, aucune prise n'est prête. Il revient moins un. Cela signifie qu'une modification, une carte balaie certains plans de travail Modifier, puis elle retournera moins un. Ce sont donc les choses qu'il peut retourner et c' est une possibilité, mais chacune d'entre elles, vous pouvez donc vous le dire. Vous pouvez enregistrer dans la fenêtre, dans Windows, dans Wind Socket, cette valeur de retour sera socket. Utilisez la fonction applicable pour identifier l'erreur réelle. Dans le cas de Windows, s'agira de ce type de socket et de l'erreur quadrillée, c'est juste pour distinguer, c'est un dans lequel je décrit et je distingue simplement quand ne l'ai pas Windows J'ai écrit en l' extrayant au cas où toutes les fenêtres de cet éditeur seraient mortes. En outre, vous pouvez appeler cette fonction w et dire Obtenir dernière erreur afin d'obtenir les détails de la modification, elle renvoie une erreur. Ok, donc cet organe a compris l'éditeur sous Windows. Maintenant, pour parler des détails à ce sujet, chaque seconde de soulignement, ici nous utilisons complètement un préréglage. Vous pouvez voir ici cette vue WAS, est le pointeur de type de données le jeu de soulignement MPI cet écrivain VS également type de données pointé va également définir un pointeur d'exception à l'obésité. Alors, qu'est-ce que ce n'est jamais le soulignement sec, comme je le fais sur les descripteurs de fichiers de votre bureau. Voyons les détails à ce sujet. Maintenant. Dans le cas de l'Unix, dans le cas des minutes qui sont réglées par FD, les autres tourbillons binaires. C'est dans le cas du vent, du chant du vent. Cela signifie que dans le cas des fenêtres, ces prises, dans le cas des fenêtres, cet ensemble vide désigne les autres structures. Dans le cas de Windows, papa contiendra la zone des sockets ainsi que le nombre de sockets, comme je vous l'ai dit dans les diapositives précédentes, en fait, que dans le cas où vous appelez la fonction de sélection, le premier argument concerne celui-ci. Les AINS dans lesquels vous ne passerez pas dans le cas des fenêtres, ce n'est pas nécessaire car ce numéro vient de mentionner les sockets car il n'est pas nécessaire dans le cas de Windows disposé argument parce que le raison de ce jeu FD, c'est-à-dire qu'il est dit que nous aurons, nous aurons la structure qui contient la surface des prises ainsi qu'elle contiendra le nombre de sockets. Donc, ce paramètre qui est le nombre de sockets est déjà présent dans cet ensemble vide dans cas où les efforts de Windows ne sont pas nécessaires. Lorsque vous appelez cette fonction de sélection. Dans le cas de Linux, sont les ensembles qui seront simplement des tableaux binaires. C'est-à-dire, dans le cas de Windows. Ce sera la structure qui contient des prises aériennes ainsi qu'elles contiennent le nombre de prises et de papa. De bonnes choses quand nous présentons. C'est la différence entre l'Unix et les fenêtres dans le cas de Bordeaux et de réinitialisation. Et c'est ce que j'ai mentionné ici. compteur valorise cette ambiance de raison dans salt ignore le premier paramètre de cette sélection, je vous ai dit que dans le cas de la socket Devin, le premier argument, qui est que la sélection est ignorée, le n'est pas nécessaire car vous êtes en cours de réinitialisation. Il est mentionné en profondeur entreposé en eux », a-t-il dit, ce que j'ai expliqué, vous savez, des détails. Cette ligne, ces trois lignes States s'empilent. Voyons maintenant les détails de ces jeux vides. Ce sont les macros que j'ai utilisées pour travailler avec ces ensembles. Je vous explique donc toutes ces choses parce que je n' écrivais pas vraiment le programme à l'aide de la fonction de sélection, ce qui est très important comme je vous l'ai dit, que pour surmonter cette auriculaire multithread, nous préférons utiliser la sélection. Nous n'avons pas besoin d'attendre longtemps le délai d'attente. Beaucoup de gens doivent lire et c'est très visible car il va rencontrer leur temps. Et vous pouvez comprendre pourquoi la définition qu'elle dit, puisque nous utiliserons toutes ces choses dans notre programme, le cœur de rédaction d'un programme. Je vous explique chaque argument dans cette diapositive elle-même. Donc, lorsque nous commencerons à écrire le programme, ce sera très Z. Et ce ne sont pas l'équilibre lunaire avant qu'il commence la preuve maintenant. Ce sont les microbes qui sont associés aux jeux vides. Ces macros que vous rencontrerez lorsque vous écrirez un programme, nous verrons que j'utilise toutes ces macros. Alors, vous saurez si j'explique détails de l'urine parce que nous sommes des humains émis, utilisez-en réellement en appelant la fonction de sélection. Quelle est la taille de cet ensemble vide que vous utiliserez avec eux réinitialise. La valeur de cette macro est le nombre maximal descripteurs de fichiers que l'objet jeu vide peut extraire en agriculture, en donnant les informations à ce sujet. Comme je vous l'ai dit ici même, que ce faux argument vous choisit ce qu'il sera. Ce sera le nombre maximum de descripteurs de ces trois descripteurs, lequel a une valeur maximale plus un ? Cette taille de jeu FD. Cela vous donnera complètement les détails sur celui-ci. C'est quoi ? Il vous donnera un nombre maximum de descripteurs de fichiers que l'objet jeu vide peut mettre. C'est ce dont parle la macro en termes de jeux vides. De plus, vous pouvez voir une macro par rapport à un des ensembles F D soulignement 0. Donc, ça veut dire quoi ? Vous passez ce jeu vide. Cette macro initialise les fichiers sous un ensemble descriptif, deux jeux vides. Vous allez donc simplement initialiser votre jeu descriptif sur 0 et donc vous utiliserez cette macro jeux de soulignement 0 et E de la FDA . Il s'agit des différentes macros au sein des ensembles qui sont des traits de soulignement vides du jeu de soulignement B. Mettons le soulignement CLR F, D. Il met en place un post-op, toutes ces macros qui sont là. Le but de cet ensemble vide est d'ajouter cette liste de descripteurs de fichiers distribués. Puisque nous savons que chaque ensemble de pointeurs est défini, cela signifie qu'il a la liste des descripteurs, des descripteurs de football. Et vous voulez appeler cette fonction et vous dessinez, vous voulez l'ajouter, aurait pu obtenir ce jeu de descripteurs. Donc, dans ce quartier, vous allez appeler M-Pesa. Afin d'ajouter ce descripteur il faudrait investir la liste sur ces descripteurs. Concentrez-vous là-dessus et CLR, cela signifie que vous devez effacer réellement ce descriptif que vous avez mentionné. Il suffit de supprimer ce descripteur, supprimer ce descripteur de tri de ce script. J'ai dit que c'est une raison pour laquelle vous appelez le code CLR de soulignement MPI . Cela signifie que vous devez vérifier si ce descriptif, que vous n'avez pas mentionné, est il n'y a pas dans cette liste de descripteurs de ce descriptif connaître l'inhumain final de la sélection de ce délai d'attente celle-ci, celle-ci sélectionne la fonction. Voyons donc pour cela. Cette sélection attendra la durée spécifiée sur les détails pour arriver, puis elle abandonnera et reviendra avec le statut de socket. Comme je vous l'ai dit, il attendra le délai d'attente. Vous avez mentionné le poids et le moniteur. En fait, si vous avez donné le script, allez surveiller pour la lecture ou pour certains descripteurs pour surveiller la pensée. C'est peut-être un post. Il vérifiera tous les descripteurs qui sont vendeurs de la radio ou non jusqu'à l'heure que vous avez mentionnée dans cette démo. Si ce n'est pas le cas, il se comportera en conséquence. Voici donc deux états qui notent maintenant que le port de sélection revient avant le délai d'expiration. Les données intégrées, il n'est gêné aucune donnée que ce qu'il faudra pendant tout le temps avant de revenir. quelque sorte, une fois que les données sont renvoyées, même si vous mentionnez que je suis sorti pour 30 secondes. Mais si la sélection est bonne, certaines des prises qui sont prêtes en fait, dans ce cas, elles n' attendront pas tout le temps. Oh, l'industrie avait mentionné qu'elle pouvait revenir avant l'expiration de ce délai. Mais s'il n'y a pas de données, il n'y a aucune activité dans la socket. Il lira la valeur du délai d'attente complet pour eux, et ils n'ont pas besoin d'États. Maintenant, si vous avez dit que le délai d'attente est 0, si vous leur donnez la valeur à 0. Dans ce cas, cette sélection sera immédiatement renvoyée avec ces données. Si vous avez mentionné les zéros dans leur valeur camouflage dans la fonction select, le dernier argument qui demande 0, ce qui signifie que vous n'avez pas besoin d'attendre, vous ne voulez pas attendre. vous suffit de revenir immédiatement. Donc, il va simplement vérifier en fait , il suffit d'appeler cette fonction de sélection, il continue. Rituel. Les descripteurs sont prêts sinon ils n'attendront pas, en fait, ne l'ont tout simplement pas immédiatement. Cela signifie que si vous envoyez le paramètre rétrogradé à la valeur nulle, dans ce cas, il continuera simplement à attendre qu'il ne trouve aucun événement B survenu. Dans ce cas, cela ne mènerait pas à l'indépendance, mais je le suis aussi, il peut être, il peut attendre un temps infini s'il n'y a pas, rien, aucune activité en fait, ces données de nœud. Si vous vouliez ajouter des préréglages de script pour la lecture, si vous voulez écrire, il n'y a rien que vous ne puissiez trouver de données directement sur la socket. Il continuera à lire et à lire. C'est à quel endroit il est nul. Et si vous prolongez la démo sera un millilitres de temps différent de zéro. Si vous donnez une valeur positive, une valeur non nulle, la valeur Sélectionner qui n'est pas égale à 0. Donc, dans ce cas, il attendra le temps que vous avez mentionné et il bloquera le match de mort le délai d'attente sera écoulé, il reviendra. C'est ce qu'en est-il paramètre de délai d'attente en cas de fonction de sélection de points. Maintenant, ce que ce délai d'attente a réellement en détail. J'ai mentionné que le délai d'attente aura également ces choses en secondes et microsecondes. C'est juste comment les utiliser. Ensuite, la dernière chose qui n' est pas un socket non bloquant pour les atteindre décline la communication du serveur. Au lieu d'utiliser la fonction de sélection, nous pouvons rendre la socket non bloquante en suivant les différentes fonctions. Qu'est-ce que cette âme, comme je vous l'ai dit, qu' il existe deux modes de blocage de la prise et de non-blocage. J'espère donc que vous avez compris que le blocage signifie qu'il lira réellement dire que l'événement se produira. Par exemple, nous avons vu dans le cas de la fonction rouge, que si nous appelons la fonction de lecture, si la socket est une socket bloquante, et si nous ajoutons manger réellement dans ce cas, si elle n'obtiendra pas le données, il se lira simplement. Les données sont présentes sur la prise. Donc, dans ce cas, tout votre programme sera bloqué car vous appelez une fonction et il attend toujours que les données arrivent sur le socket. Le délai d'exécution de votre programme sera arrêté. On parle, on s'est arrêté. Au cours de cette session, on aura vu que la salle des affiches, afin d'atteindre la communication du segment de ligne PICC, nous créons un thread pour chaque plan qui se connecte réellement au serveur. Ce sera ou ce qui fait mal à cause des inconvénients. Il aurait fallu voir ce conseil, pour éviter ces inconvénients, nous ne préférons pas utiliser la menace. Nous appelons la fonction Select. Vous avez vu quel est le but de la fonction de sélection. Donnez immédiatement la liste des descripteurs que nous voulons. Vraiment surveiller réellement mettre tilde la valeur du délai d'attente et il retournera en fait avec les descripteurs qui sont prêts, quel que soit le département qui est prêt à écrire tous ces descripteurs les retours ont été sélectionnés sockets, il retournera réellement qui sont prêts à être traités. C'est ainsi qu'il ne se lira pas pendant longtemps. C'est ainsi que vous contrôlez réellement la baignade. Ce n'est pas celui que nous utilisons réellement. Une autre façon est que vous perdez, je fais que la socket est non bloquante, donc c'est une autre chose pour les atteindre et décliner dans plusieurs communications et les détails sur l'utilisation de la socket non bloquante. Quel est le but de la prise non bloquante ? Ce qui va se passer et comment réaliser ce mois-ci décline la communication avec le serveur à l'aide d'un socket non bloquant que nous verrons dans une autre session. Vous verrez également le programme. Je vous ai donc expliqué comment les détails de la fonction de sélection, comment l'utiliser. Et puisque nous allons écrire un programme et l'exécuter. Donc cette connaissance de la fonction de sélection, ainsi que des arguments requis, des détails à ce sujet sont nécessaires, il y a une raison d' avoir du carbone ici. Nous verrons également, puis nous voudrions savoir ce qu'il en est de la socket non bloquante, comment réaliser cette communication client-serveur lundi. Et nous allons également écrire le programme pour cela, résumons tous les sujets en réalité, voyons quels sont nos sujets que nous aborderons lors de la prochaine session. Tout d'abord, vous allez écrire le programme et l'exécuter à l' aide de la fonction de sélection. Ce cadrage, cette session est très importante pour vous, car dans la prochaine session, je vous expliquerai que vous écrirez un programme sous Linux et que nous l' exécuterons très importante pour vous, car dans la prochaine session, je vous expliquerai que vous écrirez un programme sous Linux et que nous l' exécuterons. à l'aide de la fonction de sélection. Depuis plus de travaux, j'ai expliqué au cours de cette session qu'il aurait été utile à l'époque. Vous devez voir comment quelqu'un décline. Plusieurs communications sont réalisées, nous l'exécuterons et nous verrons cette communication se produire sur Linux lors de la prochaine session. La prochaine session sera très facile pour vous. Si vous avez passé cette session complète à l'aide de la fonction de sélection. Ensuite, la prochaine chose , nous aborderons ce que fait le socket non bloquant, comment vous pouvez obtenir des déclins de communication avec le serveur. Ensuite, nous verrons également la différence entre ces deux approches, qui abordent les approches permettant de réaliser une communication multiligne avec des serveurs. C'est la différence entre la fonction de sélection dans laquelle je vous ai montré maintenant. La différence entre le socket non bloquant, car c'est aussi l'autre moyen d' obtenir ma communication de serveur décline. Une fois que j'aurai terminé cette prise non bloquante, nous vous verrons sur la différence entre eux et celle que nous sommes censés préférer. Voyez lequel est, lequel utiliser lorsque vous sélectionnez une socket non bloquante que tous les leaders de la session suivante. Comment créer un socket ne bloque tous les détails et un programme et écrire un programme et exécuté à l'aide socket non bloquant afin d'obtenir une communication multi-cloud et serveur. Dans les prochains Soviétiques voient sur la solvabilité le programme utilisant le non-bloquant, rendre le socket non bloquant et l'exécuter sur Linux sur, Merci, Nous allons couvrir. J'espère donc que vous avez compris la session complète au cours de laquelle nous avons vu tous ces détails sur les sockets bloquantes et non bloquantes que vous avez sauvegardées pour sélectionner et comment réaliser eux. communication du serveur Anticlines en utilisant sélectionner toutes les choses que nous ajoutons via un v ont été envahies lors de la prochaine session, qui signifie voir le programme à l'aide de la sélection et voir comment atteindre cette multiligne communication du serveur, écriture du programme et exécution en langage C. Et merci pour l'instant. Merci beaucoup d'amis. 21. Session13 du programme et d'exécution: Bonjour les amis. Aujourd'hui, nous allons écrire le programme socket à l'aide de la fonction de sélection afin d'obtenir la communication du serveur de lignes magnétiques, ainsi que nous l' exécuterons sur Linux en utilisant le langage C. J'espère que vous avez passé par la session précédente et je vous ai expliqué les détails, la nécessité d'utiliser la sélection pour obtenir la communication multi-client-serveur. Nous avons vu deux réalisations, la communication client-serveur, tout d'abord, elle peut aller avec l' approche qui crée le thread appelé chacun des clients qui y sont connectés, il y a plusieurs clients puis plusieurs threads, nous pouvons le voir. Mais quel est le problème dont nous avons discuté lors de la session précédente ? Il y a différents désavantageux en créant le thread pour chaque client qui se connecte au sectionné. J'ai donc abordé tous les points, tous les inconvénients et la session audio. Il n'est pas recommandé de créer le thread pour chaque client qui tente de se connecter au serveur. Et c'est la raison pour laquelle nous n' allons pas adopter une approche pour créer un fil de discussion. Au lieu de cela, nous utiliserons la fonction de sélection. Les détails de la fonction de sélection se trouvent donc. La fonction de sélection est requise. Qu'est-ce que la fonction Select ? Comment appeler la fonction Select ? Quels sont tous les arguments que vous devez transmettre dans la fonction de sélection. Tous les détails que j' ai fournis lors de la session précédente, et c'est très important pour que la réussite de l' ordre diminue la communication. Voyons donc juste une brève description de la sélection ici, et commençons à écrire le programme et à l' exécuter sous Linux. Il suffit de parler de la fonction de sélection. Quel est donc le but de la fonction de sélection ? C'est de surveiller le nombre de sockets descripteur de socket que vous donnez dans ce fonctionnement de sélection. Si vous voulez surveiller les prises à des fins de lecture, si vous voulez dire à quelqu'un que les sockets pour, je pense, qui peut donner toute la liste de ces descripteurs dans cette fonction de sélection. C'est pourquoi cette première ligne dit la même chose. C'est-à-dire que nous devons charger les réinitialisations. C'est lu, écrivez une exception avec les sockets que nous voulions socrates que vous souhaitez tester pour toutes ces fonctionnalités que nous pouvons donner cette lecture sera la liste des jeux football descripteurs que vous pouvez donner achetés. Je pense, la lisibilité. Vous pouvez fournir une liste du descripteur de socket à tester. Et puis il y aura l'exception descriptive de défaut seg. Donc, tous les détails que je vous ai expliqués lors de la session précédente, ce n'est qu'une brève description. Alors, quoi ? Cette fonction de sélection, nous reviendrons. Nous donnons donc ici toutes sortes de paramètres de délai d'attente à la fonction de sélection. Quel est ce délai d'attente par diamètre que j'ai décrit c'est le délai dans lequel vous devez tester toutes les prises. Nous devons tester lesquelles des prises sont prêtes à être lisibles. Laquelle des prises est prête ? Stabilité d'un quart de pouce. Donc, tous ces sockets en fait dans leur délai, lequel d'entre eux est prêt, il retournera la liste de ces sockets si le délai expiré et pas de sockets, de lisibilité ou de répétabilité. Il n'écrira donc aucune des prises. Il s'agit donc d'utiliser la fonction de sélection. Et si vous devez passer en revue les détails pour passer par la session précédente, vous comprendrez tout ce qui concerne la fonction de sélection. Commençons donc à écrire le programme à l'aide de cette sélection ainsi que angelinos exécutés en langage C. Egalement amis, cette session que je vous donne est le système d'exploitation Windows. Afin d'écrire le programme et exécuter sur le système d'exploitation Linux, j'avais installé la boîte de machines virtuelles Oracle. Vous pouvez également faire la même chose. Il est très facile de le télécharger et de l'installer afin que vous puissiez également essayer différents systèmes d'exploitation. Et si vous possédez le système d'exploitation Linux, vous pouvez écrire directement le programme avec moi et vous pouvez l'exécuter ensuite. Souvent cependant, nous embarquons des fentes ouvertes sous Linux. Démarrons le système d'exploitation des unités et le programme radio. C'est mon terminal Linux. Je vous informerai des commandes de base lorsque vous commencerez à écrire le programme sous Linux. C'est le retrait dans lequel j' ai dans le dossier d'accueil, j'ai créé ce folio qui est socket programmant Linux à l'aide de select. Ici, je l'ai déjà écrit. Permettez-moi de supprimer la sortie ici. J'ai été devant vous et nous verrons, laissez-moi ouvrir ce fichier. Laissez-nous. Connectez plusieurs, plusieurs clients.lire. J'ai donc déjà écrit ce programme. Laissez-moi ouvrir ça et je vais l'épingler. Au lieu d'écrire chaque ligne et 98 instructions à partir du stock, licenciement prend beaucoup de temps. J'ai donc déjà écrit le programme et ensuite je vous expliquerai les instructions ligne par ligne qui sont utilisées. La plupart des choses que je vais aborder dans ce programme que j'ai déjà abordées lors de ma précédente session, j'ai expliqué, savaient comment utiliser la fonction de sélection, ce qui est très utile. Si vous passez par cette session précédente, cette session sera très importante. Donc. Je vous recommande de passer à la session précédente avant de commencer cette session. Démarrez le serveur. Il s'agit donc d'un rapport de la barre latérale qui a été essayé pour la société Une fois que j'ai expliqué les instructions de chaque ligne , nous l'exécuterons. Une fois le solveur exécuté, solveur sera lancé. Ensuite, nous lancerons le client depuis un autre terminal. Ainsi, une fois que nous lançons un client qui tentera de se connecter au serveur , le client envoie la connexion au serveur. Le serveur accepte cette connexion et il enverra un message d' accusé de réception. Avec application. Ce message sera imprimé sur la console, sur le client. Vous verrez comment le trottoir envoie ce message au client. rouge est donc la communication entre le serveur et le client. La deuxième chose que nous verrons dans ce programme est que tout ce que nous tapons , le message, le client, soit renvoyé au client lui-même à l' aide de la fonction de sélection. Donc, si je tape un message, dites bonjour, ce message apparaîtra, apparaîtra à nouveau sur la console client en disant bonjour. Tout cela utilise la fonction Select. Nous verrons comment fonctionne réellement la fonction de sélection. Et ensuite, si nous essayons de lancer le deuxième client, si nous faisons écho, c'est un autre message à ce sujet, sur cette ligne. Deuxième client, il sera affiché sur cette deuxième ligne elle-même. Donc, toutes ces choses que nous couvrirons de cette façon. Nous verrons également comment le serveur parle au client et si nous pouvons faire écho au message déclin lui-même, même plan lui-même, quel que soit le message que nous avons donné sur le client, ce message apparaîtra sur la ligne rouge elle-même sur les choses que nous aborderons au cours de cette session. Dans ce programme. Je vais vous expliquer ce que toutes les choses, quelles sont toutes les instructions nécessaires pour y parvenir. Commençons donc par définir les fichiers d'en-tête que vous devez fausse. Ne le déclarez pas avant de commencer le programme. Je l'espère. Vous avez également passé par les sessions de configuration précédentes que j'ai couvertes pour la programmation des sockets. Donc, vous savez, le B6, la prise. Comment le serveur communique-t-il avec le client ? Quels sont les champignons, comment le serveur se liera au port et comment le client se connectera au même port, et comment cette communication est effectuée. Tous les détails que j'ai expliqués sur l'empilement de la session sur ce cours. Je vais vous dire comment vous devriez suivre séquence étape par étape. Commençons. Le langage Since c'est un langage C, mais l'exécution de votre programme commence toujours à partir de la fonction moyenne. C'est donc notre fonction principale que j'ai fait le code, cette fonction de sélection jusqu'à présent, le support. C'est la fonction principale. C'est la déclaration que j'ai faite. Voyons donc un par un. Vous pouvez voir que cette variable est là que j' ai initialisée. Est-ce que nous voyons toutes ces choses qu'il faut ? C'est donc le, c'est-à-dire, ce sont les variables qui sont le socket maître. Cette chaussette de soulignement ADD LN Line. Ensuite, vous pouvez voir un tableau sur le socket client qui contient n éléments. Cette variable max Klein, qui est en train d'avoir, qui est initialisée avec la valeur dix. Ensuite, toutes ces variables qui sont, que j'ai déclarées. Je vais vous expliquer quel est le but de chaque mois variable nous commençons par l'explication des instructions ligne par ligne. Je vais vous expliquer quel est le but de chaque capacité médiatique déclarée ? Estimateurs de soulignement max variable du type de données int. Il s'agit d'un maximum ou il peut y avoir les descripteurs de fichiers morts. Lors de la session précédente. De plus, je vous ai mentionné qu'à propos des détails du soulignement d'Avy sec. Encore une fois, l'école a dit en fait vous savez qu'il existe trois ensembles de cellules de soulignement de l'IDE, c' est-à-dire pour la lecture, pour l'écriture et pour les exceptions. Donc, quelle valeur de ce maximum et Steve aura le maximum. Lequel trois d'entre eux ont la valeur maximale. Vous pouvez voir ici la structure qui est obéissante a été nommée adresse, qui est du type structure sock, DDR et l'école. J'espère que vous êtes au courant de cette structure. C'est la prise de structure dans laquelle nous avons rempli les deux éléments avec les détails. Le troisième va essayer de s'y lier. Nous devons donner le numéro de port, nous devons donner la famille d'adresses autour du socket. Donc, tous les détails sur l'API de socket déjà dans la session de début du cours. Alors, s'il vous plaît, passez par là Nous couvrirons, l'objectif principal sera savoir comment utiliser la fonction de sélection dans la carte de communication de prise. Toutes les communications entre communication moléculaire et cellulaire. Voyons donc voir. Nous utilisons réellement un tampon, donc nous verrons comment l'utiliser. J'ai entendu parler. Et vous pouvez voir le jeu FD. Nous utilisons donc sur le côté ici, puisque nous sommes dans notre programme, surveillez cependant, décrivez des prises pour la lecture, l'écriture, vous pouvez également donner l' écriture appelée en fonction vos besoins ici je n'ont donné qu'un garçon, parlons-leur. Je vais traiter. Donc ici, j'ai pris la surface de la FDA du type de données. Encore une fois, ce jeu de codes, vous pouvez le voir ici. Mais, prenez un point. Le message, c'est-à-dire qu' il s'agit d'un message qui sera envoyé depuis la barre latérale vers neuf lecteurs pour se connecter au serveur. Nous enverrions ce message à partir de là, je vais exécuter ce programme lui-même. Vous verrez comment utiliser ce message, August envoie ce message. Ensuite, dans ces trois lignes d'instructions, vous pouvez voir ce que nous faisons ici. Vous pouvez voir qu'il s'agit d'une boucle for-loop. Et ici, nous prenons la boucle à partir de 0, lignes de soulignement max. Qu'est-ce que cela a du sens ? Cool clients, il est initialisé à dix. Donc comme je veux dix clients, peux lui apporter dix clients peuvent se connecter au serveur, donc je l'ai donné dix. Et donc cette nouvelle boucle, et donc cette boucle va passer de 0 à n. Initialement, ce que je fais, c'est que ce qui est ce domaine à propos du socket client ? Il s'agit d'un ensemble de ces descripteurs de football. Nous savons donc qu'une fois que la socket est bien, socket est créée, puis elle retournera un descripteur de socket. Nous avions maintenu le descripteur de socket dans cet ajout nommé client et le soccer scolaire. Et au départ, comme il n'y a pas de client connecté, ce serait que nous initialiserons les dix descripteurs de socket du client seront 0. Une fois que le client essaie de se connecter sur le côté , un par un, ces éléments d'ajout seront remplis. Socket, il va le retirer du client qui essaie de se connecter. Vous verrez donc à quel point ces choses sont profondes dans l'ensemble de ce programme lui-même. Alors, ce que nous faisons. Puisqu'il s'agit d'un programme de barre latérale, nous allons créer le socket côte à côte. Comment créer la socket ? Nous savons que nous devons simplement utiliser la fonction socket de cette manière. Et c'est la configuration sur les humains que nous sommes censés faire une pause. C'est ce premier argument, le deuxième argument et cet argument de la partie. C'est la famille d'adresses. Nous avons vu les détails à ce sujet lors de la session précédente, le type de prises, et nous effectuerons la communication par socket à l'aide du marché des socket de flux Bagram. J'ai donc mentionné le type de socket également les détails de cela inexpliqués dans la session de démarrage. Ce 0 sera passé ici. Une fois que la socket côté serveur est créée, elle retourne. S'il réussit, il retournera cette socket principale. Vérifiez en fait s' il réussit ou non, certainement cette condition est donnée comme ceci. Ici, cette socket principale sera le descripteur de socket sur la barre latérale, ce que nous avons obtenu. Une fois cette socket créée, ce socket maître, nous essaierons de lier ce socket de serveur maître circulé au numéro de port, et nous essaierons d' écouter le numéro de port. Je vais essayer d' accepter simplement la connexion. Si nous avons essayé de lancer le client d'un autre côté à partir d'un terminal N , une fois qu'il est à l'écoute, le serveur accepte la connexion du client. Si le client se connecte au même port, engourdissez tout ce que nous verrons ici sur le site du serveur. Comment lier, écouter, accepter. Maintenant, les instructions de configuration suivantes, qui sont là, sont configurées socket d'OPT. Il s'agit donc également en option et la socket maître pour leur permettre une connexion éthique. Cela donne donc les différentes options que vous pouvez donner ici dans cette instruction qui est terminée. Le prochain secteur d'instructions que vous recevez, vous savez, vous pouvez le voir. C'est ce que vous faites comme je vous l'ai dit, quoi cela répond-il ? Ce sont les artères de la douille soviétique déjà vues dans les bases de la prise. Comment remplir. C'est ainsi que ce pilier extérieur, cette variable, chaque élément de cette variable un par un, avec le membre du conseil d'administration de la famille. Et avec toutes ces choses, nous devons protéger. Le destructeur n'est pas membre de. Donc, tout ce que tous les membres de ce projet de loi vidéo sont d' avoir la famille avec laquelle nous devons vivre. Famille de la prise. Vous voulez Ben ? Que tous les détails du temps de prise vous expliquent dans la session de départ, veuillez le parcourir également, je me suis concentré sur ce fer ADR et la partition. Dans la session précédente de la socket, passez par là. Ensuite, ce numéro de port, que je vais vous donner un numéro de sport, je l'ai simplement défini à quatre fois huit pour que vous puissiez définir le numéro à n'importe quel numéro de rapport, pas de problème. Mais rappelez-vous que lorsque vous essayez de vous connecter à partir du client, vous devez vous connecter sur le même numéro de port de la barre latérale, ce qui vous donnera, si vous me donnez un numéro de port différent, le site serveur. Et vous le souhaitez, et vous voulez que le client se connecte pour donner le même numéro de port, ce que vous donnez ici côté serveur. Ce déclin peut alors décider ce qui peut alors accepter la connexion. Il est lié à ce numéro de port. C'est ainsi que nous lions le numéro de port de la prise latérale et nous donnons les détails de la poche de la famille de liste pour moi. Il s'agit donc d' autre chose que le programme. Il suffit d'imprimer le message écoute sur le numéro de port. Vous obtiendrez donc ce message d'affichage sur la console des éléments soudains que nous avons essayé de lancer leur cyber. Et puis, là, nous devons appeler la fonction d' écoute. Cela signifie que la quantité de connexion en attente peut être morte sur le socket divisé deux du client en fonction de la connexion V1. C'est pourquoi nous donnons également à ces auditeurs. Vous pouvez donc attribuer un nombre quelconque de connexions en attente sur le client en fonction de vos besoins. Ensuite, la prochaine chose que nous faisons est que nous imprimons simplement ce message sur la console en attente de connexion. Le serveur est en attente de connexion. Tous ces messages que nous verrons sur le site du serveur puisque ce programme est destiné au site silver. Et ensuite, vous pouvez voir ici que nous prenons une boucle qui est la boucle haute et que nous le rendons vrai. Vous pouvez donc comprendre si nous faisons une boucle et que cette boucle continuera d'itérer, alors vous ne retournez pas quelque part dans votre blog. Vous devez, pour éviter la boucle infinie, vous devez revenir de ce médecin en fonction de ce médecin en fonction vos besoins et vous devez y retourner. Il faut mentionner qu'il s'agit d'une boucle qui continuera de fonctionner continuellement. Nous voyons donc ce que nous faisons exactement. Vous pouvez donc voir ces instructions qui nous sont données, c' est-à-dire FDE soulignent à nouveau 0, VSCO a mis en place toutes ces choses que je vous ai expliquées lors de ma précédente session. Ces éléments sont supplémentaires et vous utilisez la fonction de sélection. N'oubliez donc toujours pas que chaque fois que vous utilisez une fonction de sélection, vous êtes censé utiliser toutes ces fonctions d'égalités et vous devez initialiser toutes ces choses de la même manière. Voici les détails vous ai donnés lors de la session précédente. Quel est le but du soulignement 0 de la FDA ? Puisque nous utilisons simplement la lecture f ds, nous voulons que le logiciel surveille le but de la lecture de la carte. Donc, au départ, nous devons toujours l'initialiser à 0. Et c'est pourquoi nous appelons ce soulignement AVG 0. C'est donc ce que j' ai déclaré et que vous démarrez notre programme. Vous ne pouvez donc voir ici qu' une seule personne que nous sommes. Donc, toutes ces choses que nous aurons besoin et nous appelons la fonction de sélection. En Italie, nous neutralisons simplement toutes les listes, liste de toutes les preuves à 0. Cela signifie que si vous appelez cette fonction, décidez lequel est, qui est le temps d'appeler ici et d'analyser la prise de Moscou. Et quoi ? Cette fonction, cette fonction, si vous appelez une réinitialisation, cela signifie que quel que soit le descripteur de socket que vous donnez ici sera ajouté dans cette liste. Descripteur de prise. C'est donc le problème particulier du descripteur de socket individuel que l'on pose. Supposons donc que vous deviez surveiller trois descripteurs de socket. Vous avez le but trois fois, les deux ont un trait de soulignement défini. Dans le premier argument, vous devez passer ce descripteur de socket et vous devez ajouter ce descripteur de socket. Vous devez ajouter dans cette liste le descripteur de socket lu par la FDA car vous souhaitez surveiller lisibilité de ce descripteur de socket. Et c'est pourquoi vous passez ce qui a été dit À. Supposons donc que vous vouliez le descripteur de socket surveille à des fins d'écriture. Et si vous avez initialement ou déclaré FBS droit, vous donnez au descripteur de socket argument opposé et vous pouvez donner comme un argument opposé et vous pouvez donner comme deuxième argument la bonne adresse MVS ou écrire f ds. Mais puisque dans ce programme, nous voulons ou devons surveiller le descripteur de socket à des fins de lecture. Et donc, je l'ai donné, je dois ajouter cette socket à cette liste du descripteur de socket afin que le socket du serveur puisse être surveillé à des fins de lisibilité. C'est ce que j' appelle cette fonction. Alors, ce que je fais. Vous pouvez voir ici Max, comme je vous l'ai déjà expliqué, que nous laissons ce maximum en tant que SB. De cette façon, comme cela a été le cas au début de ce programme. Quel est le but de cela ? Qu'est-ce que cette vidéo cellulaire aura ? Il aura un maximum de descripteurs de socket. Il a dit à partir de ce descripteur de socket car nous avons en fait sur moi un descripteur de socket ici. Nous ne créons pas descripteur de socket 23 équitablement avoir de la poussière, masquer les prises ou n'importe quel descripteur de prise de ligne . Donc, depuis que nous l'avons eu, nous créons, jusqu'à présent, nous n'avons créé qu'une seule socket et nous retournons un ensemble de descripteur de socket Birmanie. Nous allons donc le mentionner. Nous allons initialiser ce maximum en tant que David, valeur, c'est-à-dire une socket de soulignement maître de variable expurgée. Ensuite, nous imprimons simplement le message ici pour obtenir cette prise principale que nous aurons dépend de l'impression ou non. Ce for-loop que j'ai pris. Alors, quel est le but de cette boucle for-loop ? Vous pouvez donc déjà voir ici que c'est une boucle de temps. Donc, à l'intérieur de cette boucle, nous devons tout d'abord initialiser toutes ces choses. Respect de cet acte de la FDA. Et puis c'est une boucle for-loop. Une fois encore. Dans cette boucle for-loop, ce que je fais exactement après l'opération. Vous pouvez voir ici au début de cette boucle sub y, j'ajoute simplement le serveur, une socket jusqu'à ce que vous ne compreniez qu'un seul descripteur de socket. Je n'ai pas ajouté au lit le jeu descriptif du lecteur à surveiller à des fins d'audit. Mais je souhaite également ajouter une liste des lignes au descripteur de socket. Ensemble de descripteurs afin de surveiller à des fins d'audit. Parce que si je suppose que quelque chose soit transmis au client et que dans ce cas je dois également surveiller, en fait, j'avais voulu lire en fait à partir du socket client. Je veux que le socket client soit également surveillé s' il y a une activité en cours et en cours d'arrêt. Jusqu'à présent, seul le socket du serveur maître est surveillé à des fins de lecture si je dois tout ajouter et que les clients agissent réellement sur Monica, toute action de lecture doit être effectuée avec le recul. Je peux également ajouter ces sockets clients à ce taux de BSL afin que les choses soient lues sur ce socket client. Ensuite, je peux le lire en fait une fois que j'ai ajouté en utilisant le jeu vide. Donc, d'abord, si vous souhaitez surveiller, vous devez également ajouter le client, les sockets du client à cette quantité. Vous pouvez donc voir ici qu'il y a une raison pour laquelle j'ai pris cette boucle pour ici. Cette boucle for-loop est qu' Isaac est égal à 0 Je moins que les clients de soulignement maximum et ensuite, plus les clients max, j'ai une valeur codée en dur dix. Il s'agit d'un message d'affichage du bureau. Maintenant, vous pouvez voir uniquement ce socket client. Comme je vous l'ai dit, il s'agit d'une liste de cette zone utilisée pour maintenir la zone du descripteur de socket client. Donc, au départ, nous avons initialisé tous les descripteurs du client à 0 parce que nous n'avons aucun client à un actif, en fait un par un. Dès que le client est connecté au serveur, chaque élément sera rempli. En fait, cet élément de zone sera rempli avec ce descripteur de socket sur le client. Par conséquent, au départ, vous pouvez voir ici , je suis en récupérer la valeur de tel ou tel socket client. Puisque lorsque I est égal à 0, la zone de prise de ligne de zéros sera égale à G sera 0 elle-même. Parce que depuis toujours aucun client n'est connecté. Et il aurait pu vérifier cette condition. La condition est que si ce SDS de socket est supérieur à 0, vous seul êtes censé ajouter ce descripteur de socket client dans les vidéos précédentes. Alors, quel est le sujet de ces trois lignes d'enseignement ? Tout simplement, il s'agit de cela. Je vérifie juste dans cette boucle for-loop si mon client est connecté. Depuis que je vous l'ai dit. Si le client est connecté, dans ce cas, que se passera-t-il ? Nous allons essayer de remplir cette zone avec le descripteur de socket du client. Supposons donc qu'un seul client se connecte au serveur. Je vais donc obtenir le descripteur de socket sur le client et je vais remplir ce Eddie, Eddie zéros, puis le deuxième client que j'ai essayé connecter au serveur, puis d'obtenir le descripteur de socket différent de le deuxième client à chaque faute de frappe. En fait, puisque dans chaque allèle il n'y a aucun client connecté, vous vérifiez les conditions. Évidemment, c'est plus connecté et fait écho cette SD ou 0 sera 0 lui-même. Et par conséquent, cette condition ne sera pas satisfaite dans leur code. Je n'ajouterai pas le descripteur de socket, bien qu'il ait des mois de déclin et x au serveur, alors seule une ligne directe que nous pouvons ajouter à ce moniteur VS2 de lecteur à des fins d'audit. Au départ, vous pouvez voir ici cette condition ne sera pas satisfaite. De plus, c'est une condition de plus. Autrement dit, si le SDS est supérieur à max, vous ne saviez pas encore avoir Max SD est ce qu'il est, cependant, descripteur de socket de serveur. Je vérifie en fait si ce 11 est plus grand que ça. Il est donc évident que jusqu'à présent, nous n'avons aucun record de montée et d'activité. Cette condition ne sera pas non plus satisfaite. Mais cela ne sera pas satisfait. Donc nous ne le faisons pas, nous n'aurons pas cette instruction exécutée. Le pouce IV de la boucle for-loop va être mis en œuvre. Il deviendra un pour l' application de la prise 1. Vous pouvez le voir, puisqu'il n' y a pas de sockets clients connectés, cette valeur sera donc à nouveau 0, et donc cette condition ne sera pas satisfaite. Donc cela va simplement, cette itération se produira d' Isaac tandis que 0 je moins que. Ensuite, parce que nous avons initialisé le client maximum à dix. Puisqu'à ce point de départ, comme aucun client n'est connecté et le démarrage de ce programme lui-même, PM initialisé tous les clients bien que les descripteurs soient 0. Et donc, chaque fois ces deux choses ne seront pas satisfaites. Par conséquent, non, aucun de ces descripteurs ocres ne sera ajouté et des descripteurs seront ajoutés à l'ensemble descriptif puisque nous n'avons aucun client connecté, par conséquent, leur zone élément n' est pas installé en fait, nous n'avons pas de descriptif de socket pour cette ligne. C'est donc au début, cela sera exécuté. Ainsi, chaque fois que la boucle se déroule réellement, vous pouvez voir que c'est vital à chaque fois que cette armée, chaque fois que cette boucle, encore une fois, elle sera exécutée. 22. Session13 du programme et d'exécution Sélectionnez MultiClientServerComm 2ndHalf Part1: Ensuite, la ligne d' instruction suivante est sélectionnée. Il s'agit d'une instruction très importante, bien que ce soit. Alors, que va-t-il se passer ? Maintenant ? Nous appelons la fonction Select. Nous passons tous ces arguments. Mais il y aura un argument disposé. Ainsi, les détails sur la façon d'appeler la fonction de sélection et les arguments à l'intérieur sont tous couverts lors de la session précédente. il vous plaît, parcourez tout d'abord, comme je l'ai mentionné, vous devriez peut-être le déclarer car le premier argument aura maximum sur ce jeu de descripteurs de socket au-dessus du jeu de trois descripteurs plus un, ce côté descriptif, côté huit MDS, non ? Oui. Et exception. Et il a dit, alors lequel d'entre eux a la valeur la plus élevée plus un ? Puisque Max a DV. Désormais, il n'y a qu'un seul descripteur de socket. Donc sa valeur, quel que soit le descripteur de socket du serveur maître, qui disparaîtra après avoir appelé la fonction socket à la valeur plus un, ce serait mauvais. Nous devons demander cela dans le cas du système d'exploitation Linux que tout ce que je vous ai également décrit. Dans le cas du système d'exploitation Windows et que vous appelez la fonction de sélection. Cela n'est pas donné en fait, je vous ai également expliqué pourquoi. Parce que ce paramètre est inclus dans l'école dit Donc toutes les choses sont couvertes et ne donnent pas de session. S'il vous plaît, passez par là Ensuite. Vous pouvez voir ici le deuxième argument, nous le transmettons en tant qu'opérateur d' adresse VSO. Nous savons jusqu'à présent que nous ajoutons simplement à l'industrie des descripteurs de socket Yvonne leurs idées et c'est sur un descripteur de socket de serveur, mais aucun des descripteurs de socket client que nous ajoutons actuellement à cette étape, voir plus tard en fait dès que le programme sera exécuté, dès que nous avons essayé de lancer scénario de date limite d' échange, nous sauvegarderons le client sur le socket client descripteur me mène sur cette vidéo. Pour l'instant, comme aucun client n'est connecté ou non, il n'est pas question d'ajouter le M&M plus tard. Sur, le seul socket qui est le descripteur de socket de serveur est ajouté dans cette vidéo. Et cette valeur, quel est cet argument ? Nous savons qu'il s'agit là d' un. Il s'agit d'un ensemble vide. C'est à des fins d'écriture. C'est le but de l'exception, et il s'agit d'une valeur de délai d'attente. Tout s'est donc passé lors de la session précédente. ce que nous ne passons pas pour le bureau d'écriture car pour l'instant nous ne voulons pas surveiller l'écriture. Si vous voulez de l'action, vous pouvez également la modifier dans votre, vous savez, comme je l'ai dit, vous pouvez ajouter un quart, n'est-ce pas ? Et relâchez et n'importe quoi. Socrate, si vous le souhaitez, vous pouvez l'ajouter. Vous savez comment modifier. J'ai expliqué que vous avez entendu cela. Vous pouvez modifier votre code en fonction des besoins de mon dossier. Je veux surveiller les audits et, par conséquent, je ne suis pas en train d'analyser cela. Je passe pour écrire IS null et la pensée est humaine. Et ce quatrième argument est une exception. Je fais avec eux pour surveiller les exceptions si je le transmets car le dernier argument est la valeur du délai d'attente. Je vais également expliquer nouveaux détails en fait quelle valeur de délai d'attente, s'il s'agit d'une valeur non nulle, cela signifie que beaucoup de temps qu'il surveillera qui la perçoit réellement hors de la prise descripteurs et ce besoin de VS est déjà lu en public. Donc, puisque le lieu donne la valeur est nulle, cela signifie que vous l'êtes, vous devez le faire. Cette fonction de sélection restera en attente. En fait, mettez une activité sur la socket principale. Il ne retournera aucun DWT, aucune détection sur ce socket maître. Cela dépend valeur que vous accordez au délai d'attente. Toutes les dynamiques vous expliquent donc lors d'une session précédente. Donc, si vous donnez une valeur non nulle pour donner un temps précis comme dix secondes, 30 secondes avant la prochaine fois, il enregistrera réellement et l'activité aura un code sur le trottoir. Et si ce n'est pas le cas, alors il reviendra quoi ? Et si nous n'avions pas le temps, si une activité s'y oppose, elle retournera le descripteur de socket d' index. Et vous pouvez effectuer l' opération d'élevage. Désolé, cela signifie que vous avez le contrôle sur la fonction de sélection en fonction de cette valeur du délai d'attente, cela contrôlera le temps de sans-abri. Vous souhaitez utiliser votre outil de sélection. C'est contrôlable, donc c'est la raison pour laquelle c'est en une journée. Parallèlement, vous pouvez également traiter avec d'autres tâches. Donc, il ne gardera pas votre fonction d'origine bloquée pendant longtemps, poly-time, vous aviez mentionné que beaucoup de temps il sera blogué car ce sera faux. Moyen avec traitement en cours de tâche après ce délai d'expiration. Ensuite, il s'agit d'un message de ligne de plus qui augmentera considérablement jusqu'à la sélection. Cela ne fait que vous expliquer le sol. Et il voit évidemment ici comment se déroule le flux. Maintenant, nous vérifions avec l'additif que certains désélectionnent, il reviendra. s'agit d'un retour, en fait, il retournera une certaine valeur, donc nous le vérifions en fait. Si c'est moins de 0, c'est génial. De cette manière, nous imprimons l'erreur. Nous vérifions que certains métaux se sont produits en appelant la fonction de sélection. Toujours. Depuis l'achat. Maintenant, à ce stade. Et n'ayant qu'un seul côté d'une socket, nous surveillons cela si une action est effectuée sur le socket du serveur. Vous pouvez donc comprendre quelle action peut être effectuée sur le socket de la barre latérale de Besley. Jusqu'à présent, ce que nous avons fait, ce que nous avons acheté, nous obtenons ce que nous avons fait dans Selon nous, nous sommes simplement contraignants. Nous avons fini de relier le socket de la barre latérale au numéro de port et nous avons fini de les enchérir. Il est en train d'écouter. Et une fois cela, l'activité qui peut se produire sur cette activité de socket de serveur peut se produire comme si nous essayons de connaître la date limite de lancement. Donc évidemment que neuf le feront, si j'essaie de me connecter à la barre latérale et que le serviteur devra l'accepter. C'est donc l'activité qui accepte la connexion du client. C'est une activité que le mécanicien ocre sur le côté de l'orquille. Donc, dans ce cas, le socket de serveur obtenu deviendra actif car le client enverra une action à trier latéralement. Dans ce cas, la barre latérale devient active. Et comme vous ne surveillez pas déjà votre serveur à des fins de lecture, Deco, vous devez vérifier ces options. Cette option est requise via elle. J'ai également expliqué que vous pouvez voir ce bloc que j' ai fait après la fonction de sélection. Nous avons des instructions de configuration intéressantes pour vérifier que l'un ou l'autre des descripteurs de football a été défini dans votre jeu de descripteurs. Ça veut dire quoi ? Puisque la fonction de sélection retournera, elle retournera en fait avec ce numéro en haut. Et cela pourrait avoir quelque chose de descripteur avec l'ID pour l'opération fonctionne le mieux lorsque vous devez continuer à cocher réellement, ce qui est que le descripteur de socket est prêt. Rappelez-vous donc que cette lecture f ds sera modifiée en fait après la fonction de sélection. Donc depuis, depuis maintenant, vous passez simplement en ajoutant un seul socket va laisser en effet fonction de sélection de menu évidente. Cela sera modifié en fonction de la valeur des descripteurs de football. Retour. Oui. Ce bloc n'est donc là dans l'enseignement que jusqu'à ce point pourquoi cela est nécessaire. Ce bloc, que je viens de mettre en évidence ici, dit simplement qu'après l'appel de la fonction de sélection, évidemment quand il revient à voir que le descripteur mort est défini dans votre taux de leçons Je vous ai dit que l'état de VS sera modifié après avoir appelé la fonction de sélection initialement ce que ce taux de VSS a, ayant la liste des deux descripteurs de socket avec vous. Vous voulez qu'ils soient surveillés. Dans le cas de la FDA de lecture, vous ajoutez également tous ceux dans votre créativité. Une fois que cette fonction de sélection a été appelée exécutée, elle retournera à droite ? Après son retour, il sera modifié. Cela aura avec cela sur la liste des descripteurs prêts pour cette fonctionnalité. Il n'aura pas le descripteur de socket le plus ancien. Seuls les descripteurs de socket sont prêts pour réaliser le but de lecture dans le cas de cet ensemble descriptif. Et donc vous devez perdre cette chose surlignée, ces instructions afin de vérifier réellement le descripteur de marche ou de socket car on vous donne la vérification WSUP un par un. Mais l'un ou l'autre des descripteurs de socket est présent dans ce lecteur de ds. S'il est présent dans cette vidéo, signifie que le descripteur de socket est mort. Socket est prêt à être lu car les quantités du module sélectionnées seront modifiées. retour d'invalidité aura la valeur de ces seuls sockets un objectif de coordination retardé et prêt à l'emploi. S'il dispose d'un descripteur de socket, que vous surveillez pour une lecture répétée et que seulement deux d'entre eux sont prêts. La fonction de sélection est donc appelée. Seules deux des prises seront ajoutées. Lisez les FDA et vous ne savez pas. Vous devez vérifier un par un. Tous les dix en fait, si vous voulez vérifier lequel d'entre eux est présent dans votre jeu de descripteurs. Et évidemment deux d'entre eux sont cette condition car dans notre cas en bas, il s'agit maintenant de la surveillance IVR uniquement du socket du serveur maître. Et donc je suis simplement, je pense que le code pour prendre de nombreux semestres, etc. descripteur de l' orquille à son socket maître est présent en 3D de ds. Si elle est présente, cela signifie que cette prise est prête à être évaluée. Cette condition sera satisfaite. C'est le but principal de l'utilisation du soulignement de la FDA est dit, Vous êtes censé utiliser après l'appel de la fonction de sélection. Et donc dans cette cellule, si cela est satisfait, il est satisfait. Cela signifie que j'appellerai la fonction de sortie que je vous ai dit attribuer la connexion au serveur sur le même numéro de port et ceux qui ont besoin d' accepter cette connexion. J'ai mis. J'appelle cette fonction d'extrait. Et puis cinq, voyant que le maître Socrate veut qu'il s'agisse d'un socket de serveur c' est que nous analysons les détails de l'adresse en personne et toutes ces choses. Mais je veux dire que c' est le cas, s'il revient, il retournera le descripteur de socket de la ligne de livre, qui se connecte. Nous avons eu cette étape. Cette condition est satisfaite. Cela signifie qu'à ce stade, il y a une ligne qui est lancée. Donc, jusqu'à présent, nous n'en avions pas. Mais une fois que nous avons essayé de lancer Dark Line, client essaie de se connecter au solveur dans le lit est après cette sélection. La fonction Select. Vous savez, il attendra réellement dans notre cas, il attendra nuit indifférente jusqu'à ce qu'il obtienne une connexion du client. Vous pouvez voir ici, j'imprime ceci avant sélectionner lorsque vous lancez le serveur. Et vous pouvez voir ici, vous recevrez le message avant de sélectionner ce point. Ce serveur attend en fait, puisqu'il l'a mentionné ici. C'est cela, toutes ces choses ne seraient pas satisfaites en fait, que l'on ne ment pas parce que cette condition n'est que lorsque le client essaie de se connecter au serveur et qu'il y a une activité. Le lac je descends la connexion, alors nous ne sommes que nous. Cette condition ne serait pas satisfaite si c'était la chose. Donc, vous pouvez certainement voir ici, une fois que j'ai essayé de lancer le serveur sur New, vous pouvez voir la sélection locale par défaut. Vous ne verrez pas le journal de cette sélection car un soudain qui attend réellement, parce que vous n'avez pas donné ici. Une fois que nous lançons Dark Line, il essaiera de se connecter avec le solvant et vous recevrez tout ce message sera imprimé. Et vous recevrez également ce message à cette nouvelle connexion. En fait, cela signifie que l'application a obtenu un accès à la même nouvelle connexion. Cette vidéo permettra à un seul client de se connecter. De toute évidence, lorsque le client se connecte , le serveur envoie le message. Quel est ce client ? Il s'agit donc du descripteur de socket ou du client qui a été connecté. Puisque cette fonction d'extrait le renverra, retournez le descripteur de socket de ligne sombre du côté serveur que nous envoyons. Vous devez écrire sur cette prise un message, comme je vous l'ai dit, quel est le but de ce programme ? Ce que nous allons faire, nous allons essayer de lancer le serveur puis de lire l'écriture pour nous connecter sur le même numéro de port à partir de la vue simple. Alors, il le fera. Cela apparaîtra tout ce qui se trouve sur faible déplacement IV se trouvera côté serveur. Vous recevrez ce message, une nouvelle connexion sur tous. Le serveur enverra un message au client de cette manière. Ce message, ce qu'il y a là. Maintenant, l'utilisation de ce message arrive. Comme j'ai déjà enregistré ce message à cette valeur, vous pouvez voir ici, il s'agit d'un message pointeur de chat. Et je reçois ce message est un message d' accusé de réception envoyé par le serveur. Nous envoyons donc ici le message côté client de cette manière, le socket client. Et il s'agit simplement d'afficher le message côté serveur, le message d' accusé de réception est envoyé avec succès de leur part. Plusieurs. Maintenant, c'est une boucle de plus qu' une boucle, cette condition elle-même. Donc toutes ces choses où je le mentionne en fait quand je lis ces instructions telles que données dans cette condition, c'est la condition et vous devez maîtriser la prise, c' est-à-dire les vendeurs, notre Socrate obtenir la connexion du client. Cela signifie que le client est présent. Maintenant, évidemment, ce que vous faites, vous essayez de quitter la connexion du côté serveur. Et encore une chose que vous êtes censé faire, vous pouvez juste deviner. La plus grande chose qui est nécessaire est encore maintenant. Vous pouvez voir dans notre programme ce que nous avons fait. Nous avons dans la baie pour le descripteur de socket client, initialement, il est initialisé à 0 car il n'y a pas d'application connectée. Mais maintenant, à ce stade, si cette condition est remplie, cela signifie qu'il accepte la connexion à nouveau, il peut accepter la connexion. Et il y a une demande client pour se connecter au serveur, puis le serveur peut accepter cette connexion. Cela signifie qu'un client a été lancé. Maintenant, quel est notre rôle, ce que nous sommes censés faire, nous sommes censés ajouter ce client dans le jeu de descripteurs à des fins de lecture. Ce père dans le filtre se passe quelque chose sur ce socket client. Pour la lecture, nous pouvons simplement surveiller réellement et effectuer l'action. Donc, cette logique est requise ici, vous pouvez voir cette boucle et vous pouvez voir que je prends une boucle à partir de 0, je suis inférieur à la ligne de soulignement maximum I plus, plus. Je suis en train de vérifier cet état. En fait. Pourquoi cette condition est vérifiée, car vous pouvez voir initialement toute la zone et les humains de ce socket client sont initialisés à 0, je suppose. Nous savons donc au départ qu' aucun d'entre eux n'est lancé. Maintenant, à ce stade, le déclin de 0,1 a été lancé et un seul client est connecté. Par conséquent, il vous suffit de remplir le descripteur de socket de la seule ligne. Vous allez le remplir en tant que membre zéro de cette zone du socket client. Il s'agit de la liste du descripteur à neuf sockets. Ainsi, seul le 0ème élément de ce tableau, ce descripteur de socket client sera rempli avec le fournisseur et le descripteur de socket que vous avez achetés. L'intérieur accepterait la connexion. Pourquoi cette condition est-elle nécessaire, par exemple, pour l'instant, puisque ce que nous faisons chaque fois le client est connecté au serveur, nous l'ajoutons sur le socket de ce client prise ici. Et donc, dans ce cas, avons déjà ajouté depuis la première fois. Il est ici. Et la deuxième fois, encore une fois, la connexion se déclenche. Un autre client tente de se connecter au serveur. Ce qui se passera, évidemment, le 0e élément de ce tableau sera différent de zéro car vous êtes déjà en train de remplir et de coucher lui-même, le descripteur de socket client dans ce paramètre. Par conséquent, cette condition ne peut pas être satisfaite en fait, et avant que je ne devienne un, encore manuel de votre socket client vérifie s'il est 078 sera 0. Pour dire simplement ce socket client, je ne serai 0 que lorsque votre chèque commencera réellement qu'il essaiera d'ajouter. J'espère donc que vous comprenez réellement ce que nous essayons de faire. Donc, un par un à chaque fois, nous allons essayer remplir ce tableau en vérifiant simplement s'il est 0. En fait, cela signifie que nous avons ce descripteur de socket client à cette position elle-même. S'il a déjà une certaine valeur, cela signifie que notre descripteur de socket est déjà ajouté à cette position. Nous allons incrémenter I d'un en fait, et nous avons une autre position biotechnologique que cette valeur soit 0 ou non, c'est casser Maya appliqué à nouveau, nous n'avons pas besoin de prendre réellement parce que nous est arrivé au point où nous devons construire ce socket est le descripteur de socket client dans la baie, et donc nous devons sortir. Et ce point. 23. Session13 du programme et d'exécution Sélectionnez MultiClientServerComm 2ndHalf Part2: Maintenant, la prochaine instruction sera exécutée en fait parce que toutes ces instructions qui sont présentes dans votre temps, vraies, vraies, que nous avons données. Ici. Il s'agit d'un bloc entier du code actuellement présent. Par conséquent, les prochaines instructions qui seront là sont en fait en dehors de cela. Donc, chaque ensemble. Maintenant, cet ensemble de FD, nous avons vu ce qui était présent. En fait, ce que nous sommes censés faire, j'arrête tout ce que vous avez à accepter la connexion du client et du socket client que nous obtenons, nous devons simplement ajouter Eddie sur ce socket client. fait cette activité que nous devons faire. Et nous envoyons également le message plus longtemps pour décliner ces choses que nous faisons action extraire à l' extérieur cette condition si. C'est encore une boucle for-loop. En fait, je ne savais pas. C'est en général le Khonsu, ce que nous faisons. Cette boucle for est simplement utilisée pour vérifier, en fait, lire qu' il y a des opérations en ligne. Vous savez maintenant que votre client a été lancé, il est connecté au serveur. Vous pouvez maintenant ajouter réellement votre client sur le jeu de descripteurs à des fins de lecture. De plus, vous pouvez simplement vérifier réellement la même chose que celle que vous vérifiez pour le côté Savoir, c' est-à-dire qu'un v est égal à défini après la fonction de sélection. C'est la même chose que vous pouvez vérifier réellement pod Aussi le socket client en fait. Maintenant, cette boucle for-loop est juste utilisée pour vérifier celle qui, en fait, s'il y a activité, une opération d' entrée-sortie est en cours, s'il y a des opérations d'E/S cours sur les sockets clients. Pour l'instant, nous n'avons qu'un seul socket client, mais maintenant nous ne le sommes pas, nous n'avons toujours pas ajouté ce socket client dans leur ensemble de descripteurs de lecture, donc nous ne pouvons pas le surveiller, n'est-ce pas ? Donc, cette chose dépense Olivia pour ajouter ce socket client également dans le MDS , voir même la tête que nous devons ajouter. Rappelez-vous simplement que cette boucle for-loop est utilisée en fait cette boucle for est juste utilisée. On peut voir ici, j'ai pris que je suis égal à 0, je suis moins que maximum de clients, ou maintenant nous avons dix clients. En fait, ça fait de lui un mécanicien. Les lignes peuvent être là. C'est que maintenant ce socket client de zéros en Italie I est égal à 0. Appliquer socket dans ce cours, OK, et z à ce qu'il est. Mais seulement là où vous pouvez voir la date limite de connexion au serveur. Nous ajoutons le remplissage de ce descripteur de socket de ce client dans le 0e élément de la barrière du restaurant de socket client et socket hors ligne humaine est 0. Et par conséquent, vous pouvez voir votre socket de soulignement client de l'indice 0 vous donnera cependant. Bon descripteur du premier client qui lecteur, ce qui est authentique a fait en fait au solveur. Et par conséquent, vous demandez au SD de faire une certaine valeur. Et donc, dans ce cas, c'est ce que, quand tout va dans le menu ou essaie de lancer la ligne, pas lorsque vous lancez ce soir uniquement le serveur lorsque répondu au lancement du client et connectez-vous au même pôle, alors seules toutes ces choses se produiront, le n Ensuite, nous vérifions également en fait , c' est-à-dire si le client est connecté au socket et que ce SDK aura valeur, elle ne sera pas égale à 0. Dans ce cas, en fait, nous ne faisons que vérifier l'état. Et D est dit ce qu'il est décrit socket réellement descriptif s'il est résident dans cette lecture chaque année. Ainsi, lorsque cette fonction l' appelle en contrôle neutre après la sélection seulement, nous pouvons utiliser cette fonction chez un soviétique et vérifier si le socket client est présent dans cette ville, l'effort MDS n'est pas présent. Cela signifie que ce descripteur de socket est prêt à être lu. S'il est présent, cela signifie qu' il y a une activité sur ce socket client des fins de lecture et que nous devons effectuer l'action, nous devons la lire. C'est ce que, au départ, rien ne sera satisfait à cette condition parce que tout d'abord, nous n'ajoutons pas réellement, nous ne l'avons pas encore ajouté comme d En fait dans cette vidéo pour surveiller que nous puissions vérifier après la fonction de sélection. Cela ne sera donc pas exécuté. Donc, même si cette boucle for est exécutée jusqu'à ce stade, puisque au départ votre socket client a une certaine valeur, ce message sera imprimé par cette condition ne sera pas satisfait car nous ne le sommes pas en ajoutant ceci. Nous n'ajoutons pas que le socket soit le descripteur de socket client. En effet, celle de la FDA, cette condition ne sera pas satisfaite. Encore une fois, que va-t-il se passer ? Quelle condition s'agit-il nœud conditionnel complet complet avec cette condition complète si la condition ne sera pas satisfaite. Que se passera-t-il alors ? Encore une fois, la boucle for-loop sera incrémentée d'un. Encore une fois, nous allons vérifier cette condition si elle est inférieure à mon client, puis encore une fois le socket client d'un comme d. Donc maintenant que d sera 0 car nous n'avons que le 0e élément de ce tableau à avoir le premier descripteur de socket du client de cours, mais le socket client de mn n'est en fait rien qu' un seul client a été connecté. En fait, ce sera 0 acté cette for-boucle en fait elle ira jusqu'à dix fois parce que cette valeur que vous avez donnée comme dix, cela va itérer dix fois. Pouvez-vous également appliquer une pause ? Si cette valeur est réellement égale à 0, vous pouvez simplement appliquer une pause. Vous pouvez également ajouter ce code afin d'éviter une itération inutile de la boucle for. Alors, que va-t-il se passer ? En fait, une fois que cette boucle a été complètement itérée , le contrôle ira à nouveau sur la première ligne cette boucle while car vous avez donné la valeur true. Par conséquent, il continuera itérer jusqu'à ce qu'un analyste que vous ne reveniez pas. Encore une fois, le contrôle va ici. Encore une fois, que va-t-il se passer ? Souvenez-vous toujours d'une chose. Par cette chose. Cette chose est que j'ai donné le début de la boucle while parce que vous devez toujours initialiser votre éditeur ou lire un VS avec valeur 0 parce que vous savez qu' après la fonction select, ce dy dt ds est modifié avec les descripteurs prêts pour la lecture ou le sens. Il est plus ou modifié après l'appel de la fonction de sélection. Par conséquent, chaque fois ce contrôle arrive au début de cette boucle while et vous devez à nouveau vérifier la même chose. Vous devez toujours l'effacer réellement pour ne pas obtenir la valeur de la valeur antérieure. Par conséquent, votre 12 est réglé sur 0 au point de départ de cette boucle while, puis vous réglez. Alors, que va-t-il se passer ? Encore une fois, cette prise de maître de l'âme est déjà là. Cela sera à la vitesse de B étant donné que vous êtes en train de dégager . Encore une fois, vous ajoutez ce genre d'orquille à ce VD parce que vous l' êtes, vous l'avez effacé. Et alors ce maximum est D sera la tache. Que va-t-il se passer maintenant ? Voyons comment les choses vont se passer. Nous considérons que même si nous connectons un client se connecte au serveur sur le même numéro de port. Nous envisageons donc d'avoir un seul client. Maintenant, si vous considérez cela dans ce cas, que se passera-t-il ? Encore une fois, cette boucle for sera exécutée. Donc, vous pouvez voir que les instructions ligne par ligne sont exécutées. Quelle est donc la prochaine instruction ? C'est une itération for-loop est égale à 0 jusqu'à ce que I moins de dix soit égal à 0, donc socket client ou 0. Quoi ? Nous savons qu'étant donné qu' un client est déjà connecté, nous sommes donc en mesure de trier le 0e élément du socket client avec le descripteur de socket du premier client. Par conséquent, cela renvoie une valeur non nulle. Cela aura une valeur positive, elle ne sera pas égale à 0. Et donc cette condition qui est supérieure à 0 ans, cette condition serait satisfaite. Et yard est le point où vous ajoutez votre socket client dans le disque rouge, lisez la section descriptive sec. Très bien, je l'espère. La logique, en fait, il n'y avait pas de client, je vous ai dit qu'au départ, nous sommes en train d'initialiser sur le descripteur de socket client à 0. En fait, nous l'avons vu dans Verdi, mais ce point de dette lorsque nous avions exécuté cette instruction, nous l'aurions vu puisque tous les éléments du tableau sont 0, et donc cela ne sera pas satisfait. Nous l'avons vu, mais depuis que nous considérons qu'un client est connecté. Par conséquent, lorsque cette instruction est exécutée, le 0e élément du tableau comporte le descripteur du premier client. Et par conséquent, ce sera une valeur non nulle. Par conséquent, cela signifie que vous avez un seul client que vous êtes censé ajouter le jeu de descripteurs et que vous appelez donc. Et nous avons dit, et cet ensemble de descripteurs, ce descripteur qui est le descripteur de socket client, c'est-à-dire SD que vous ajoutez dans cette liste de pistes. Maintenant, qu'est-ce que vous avez en effet la posture de la FDA alors que vous avez ce genre de prise qui est maître et son cosocket. Et vous avez également votre client que vous considérez être connecté, donc vous avez ce descripteur de socket de ce client dans cette lecture de Deus aux descripteurs de terme de socket vous ont maintenant ce que vous faites ici, vous vérifiez si socket de dette en tant que D est supérieur au maximum en tant que seul. Au départ, votre maximum en tant que d était le socket principal de soulignement. Maintenant, vous vérifiez que le SDI, c'est le descripteur de socket du client. Supposons que vous obteniez que le descripteur de socket du client soit supérieur à la masse par descripteur de socket, alors vous vérifiez ce fonds chacun. Et en fait, s'il est supérieur à ce trait de soulignement maximum Stephen sera modifié avec cette valeur descriptive. C'est donc ce que vous faites. Guérissez. Encore une fois, quand je suis incrémenté, je deviens un. Par conséquent, vous allez vérifier cette condition si elle est inférieure à celle du Mexique et il l'est, alors vous verrez ici cet indice de socket client. Ce qu'il retournera évidemment maintenant, nous considérons qu'un seul client est connecté. Par conséquent, cet indice de socket client aura la valeur 0 et les autres éléments de zone auront la valeur 0 car un seul client est connecté. Par conséquent, seul le 0e élément de ce tableau comporte le descripteur saccadique de la première ligne et les autres éléments du tableau ont des zéros, donc ce sera 0 et aucun d'entre eux ne sera satisfait. Donc, de cette manière, cette boucle se poursuivra jusqu'aux contours de soulignement maximum et cette condition ne satisfera pas d' un à un client maximum de soulignement sur le, il sera satisfait initialement qu'est Isaac égal à 0, puis ajouter cette affaire uniquement au tribunal satisfait plus tard lors de l'itération de la boucle for. Elle ne sera pas satisfaite une fois cette itération de boucle terminée. Et qu'est-ce qui est mauvais ? Tout simplement un message d'affichage repose réellement la sélection. Nous appelons maintenant la fonction de sélection ici. Maintenant, dans cette fonction de sélection de l'appel j'envie, en fait, nous passons cette valeur. Cette valeur est modifiée max comprise comme t ici. Ensuite, cela conduit à DSO VR, file de la FDA dit avoir acheté maintenant au descripteur, c' est-à-dire un, le socket serveur, les lignes descriptives, les hyper sockets. Il y a donc deux descripteurs dans cet acte de DSB veulent les surveiller tous les deux à des fins de lecture. Et cette valeur est null, null et cette dernière valeur null. C'est-à-dire que vous devez continuer à attendre que vous obteniez n'importe quelle socket de descripteur pour être prête. Il faut donc attendre et attendre. Par conséquent, vous recevez cette valeur nulle. Vous contrôlez encore une fois, en fonction de la valeur que vous donnez ici, elle peut être contrôlée. Par conséquent, ici, il va continuer à attendre. Supposons donc qu'il y ait une activité sur ce socket client que vous n'étiez pas réellement, dans ce cas, elle sélectionnera, retournera réellement être ce jeu de descripteurs. Cet exemple que j'ai choisi car supposons que j' écris quelques yeux, j'ai un message sur la console de ligne. Ça veut dire quelque chose que j' écris sur cette prise de ligne, n'est-ce pas ? Et ce serait, ce message devrait être lu en fait, par conséquent, puisque nous surveillons notre programme à des fins de lecture, par conséquent, j' écris quelque chose sur le client pour par conséquent, j' écris quelque chose sur que on peut le lire. 24. Session13 du programme et d'exécution Sélectionnez MultiClientServerComm 3rdHalf: Il y a donc quelque chose à lire sur le socket client jusqu'à présent que nous ayons vu cette seule cellule. Qu'est-ce que c'est un client ? Y a-t-il une connexion acceptée, message a été envoyé du serveur à l'autre. La prochaine chose que nous allons faire, nous allons essayer d'écrire quelque chose sur le client. Une fois que nous avons écrit quelque chose sur le client, cela signifie que certaines activités de lecture doivent être effectuées parce que nous écrivons sur la socket pour le client et certaines données sur cette prise de ligne, ce qui est supposé pour être lu. Et par conséquent, dans ce cas, la fonction de sélection retournera réellement avec quelque chose. Ensuite, nous écrivons quelque chose sur le client, puis il reviendra réellement. Et puis nous devons vérifier à nouveau l'état où la ligne, vous devez vérifier chacune de leur incidence ici il y a deux descripteurs. C'est un pour le serveur, un autre pour le climat. Percevoir certaines activités effectuées sur le site serveur. Visitez cette condition est vérifiée. Pour l'instant, lorsque nous écrivons le message sur cette ligne, aucune activité n'est effectuée sur le maître, donc cette condition ne sera pas satisfaite. Que se passera-t-il alors ? For-Loop est en dehors de l'état de la pointe. Par conséquent, cette condition sera vérifiée. Bactéries, cette condition je vous ai dit que c'est Doumani, c'est pour le fonctionnement d'E/S d'entrée côté client. Ici, je suis égal à 0. Et encore une fois, le socket client de 0 sera, vous savez, qu'il s'agit déjà d'un client connecté. Par conséquent, cela renvoie une valeur non nulle. Par conséquent, encore une fois, vous vérifiez ce 0ème élément de ce tableau aura le premier descripteur du client Postal est réellement. Donc, puisque j'écris quelque chose, supposons que j'écris un message sur le climat, que je vois comment réaliser réellement un côté et sécuriser le programme. Vous expliquerez, vous le comprendrez mieux. Cela vous dira bien compris ce que nous faisons. Nous sommes de ce côté, où est leur client, leurs serveurs envoient-ils un message à cette ligne ? Et supposons que nous écrivions que la console client soit bonjour. Donc, bonjour est la réalité virtuelle. Nous écrivons sur le socket client. Par conséquent, nous supposons qu' il y ait des données sur le socket client et que nous sommes censés les lire. Et ils sont mis dans cette affaire. Encore une fois, nous vérifions. Nous avons vu que la fonction de sélection est appelée et voir si des activités et oui, des activités effectuées en fait, il y a des données disponibles sur le socket client qui sont censées être lues. pourquoi cette condition est Wilczek. V est égal à dit, c' est le socket de déclin, qu'il soit présent dans ce leader VS. Je vous ai dit qu'après la fonction de sélection, elle sera modifiée. Depuis que nous avons ajouté l'appel de la fonction de sélection qui se trouve ici, nous appelons la fonction de sélection. Et comme j'ai écrit quelque chose sur le client, il y avait un jeu de données censé être lu sur la console, et donc cela sera modifié pour ce leader VS aura le descripteur de socket ou en fait, le client n'aura pas descripteur de socket du maître car nous ne faisons rien sur le handicap de l'officier maître modifié sur l'octuor. Sélectionnez les retours dans chaque allèle. Il s'agit de disposer de deux descripteurs d'un côté, d' écrire le message, un côté, écrire le message un côté pour écrire n'importe quoi sur le socket client. Cela aura sur la ligne des descripteurs, et non sur un trottoir. Et donc, la raison pour laquelle cela ne sera pas satisfait en fait, c'est celle-ci dans ce descripteur de socket de serveurs. Notez ensuite que nous n'y sommes pas parce que nous effectuons l'activité sur l'activité de lecture du client que nous devons faire sur le client. Et cette planche ici. Puisque cette valeur n'est pas nulle et oui, j'ai fini. J'ai écrit un message sur le socket client qui est censé être lu. Par conséquent, la vitesse de VS n' a que le descripteur de socket de ce client, et donc ce MV est égal à défini, oui. Et maintenant, ce que nous sommes censés faire, j'imprime simplement un message qui sera affiché sur la console et je suis censé le lire dans le descripteur de socket du client, et je le lirai et ce sera le cas, je collecterai tout ce que j'ai lu à partir de ce descripteur de socket du client que je collectionne sur ce tampon. Il s'agit de l'utilisation du tampon. Je vous l'ai dit, j'ai déclaré que ce tampon un EDI en fait hors caractères. Vous pouvez le voir ici. C'est mis en mémoire tampon, ce message, tout ce que j'écris sur le socket client que je voulais lire en fait que je le recueille dans le tampon. En fait, la vérification des erreurs. C'est ce que la vérification des erreurs. Si une modification survient lors de la lecture cette condition sera satisfaite. Ce bloc sera exécuté. Mais si la lecture est couronnée de succès, ces éds seront exécutés et partiront. Et c'est depuis ce que j'ai dit que peu importe ce que j'écris sur le socket client, nous verrons comment je vais le voler. Après avoir expliqué ces instructions, nous lancerons le programme, vous comprendrez ce que nous faisons. Supposons donc que je tape n'importe quel message sur le socket client, nous sommes censés le lire. C'est pourquoi cette lecture est faite. Encore une fois, j'ai tiré car nous allons faire passer le même message dans l'avion. Donc, si j'ai raté bonjour, c'est en déclin. douille. Ensuite, à la prochaine ligne, je vais recevoir bonjour seulement parce que j'acquitte la même chose. Alors, comment je vais obtenir le bonjour à la prochaine ligne par ce truc. Comme condition, j'ai de nouveau envoyé le même message, le message qui sont des images collectées dans le tampon. En fait, vous pouvez voir que j'appelle à nouveau la deuxième fonction. J'appelle la même fonction et passe le descripteur de socket de ligne lui-même. Et je passe ce tampon, que j'ai lu depuis le socket client. Que seule la même chose que je passe contre tout le socket client, vous verrez la même chose imprimée en fait. C'est ainsi que se déroule le flux. Je vais donc absorber que vous ayez compris ce point en fait. Exécutons donc le programme et vous le comprendrez plus clairement. C'est ainsi que nous en avons terminé avec le codage. Ce socket en fait et faible de cette manière, nous pouvons lancer dans nombre impair de lignes, mais nous ne pouvons pas dépasser uniquement portable et les clients peuvent être connectés puisque nous écrivons ici en tant que socket client, le client maximum doit être dix en fonction de vos besoins. Si vous voulez des sockets anticlines, vous pouvez donner cette valeur comme tendance ou vous pouvez couvrir, définir cette valeur. Lançons maintenant le programme et voyons comment il sera exécuté. C'est donc mon domino en fait. Juste une seconde. Oui. Vous pouvez voir ici que j'ai ce programme que je vous ai montré. Maintenant, je vais compiler, puisque nous devons compiler un programme C sur les Lena, nous avons la possibilité d'exécuter la commande dans cette invite de commande en fait. Donc, s'il s'agit d'un langage C, j'utilise donc un compilateur GCC, qui est déjà installé dans le système. Je n'ai pas besoin de l'installer explicitement. Ensuite, je mentionnerai quel fichier compiler outil de compilation GCC, outil compilateur croisé qui est utilisé pour programmer le cadre du langage C. Par conséquent, vous pouvez voir ici, vous pouvez voir ici aucun message d'erreur n'est venu. Permettez-moi de faire ce que nous avons entendu au départ sur ce dossier C. Maintenant, après avoir compilé, je vais sur ce point. C'est mon côté : je me laisse maintenant lancer ou exécuter ma barre latérale en exécutant simplement ceci. Maintenant, vous savez, quand j'ai essayé d'exécuter le serveur, voyons ce qui va se passer. Vous pouvez voir ici ce que je reçois moi-même pendant que je reçois ce message que j'ai donné l' auditeur côté Salvo sur le port 888, attendant la connexion. Quel que soit le message que j'ai donné côté serveur, j'ai toutes les choses. La valeur de la socket principale est trois. Donc c'est juste qu'ils savent juste quel est le descripteur de socket du socket maître sur un socket de serveur. Je viens donc d'imprimer cette valeur et elle est trois en fait. Et maintenant, toutes ces lignes qui sont en quatre boucles pour ajouter le socket enfant. Vous pouvez donc voir ici, puisqu'il n'y a pas de clients, socket qui est ajouté en fait parce qu'il n'y a pas de client que nous avons lancé mais aucun d'entre eux. Nous serons zone, zone du socket client sera tout, il aura tous les descripteurs de socket 0 car aucun d'entre eux, nous n'en avons lancé aucun, aucun des socket client. Et c'est avant la sélection de la cellule. Vous pouvez voir ici, avant la sélection, cela signifie que cet affichage que nous avons. Imprimez-le maintenant. Vous pouvez voir comment le contrôle attend ici. C'est-à-dire que notre contrôle est bloqué et la fonction de sélection. Pourquoi ils ont commencé à la fonction de sélection, car nous mentionnons le délai d'attente à null. Nous savons que lorsque nous donnons le délai d' attente pour être la connaissance les attendra. Certaines activités se produisent réellement de l'encens pour être honnête, à ce stade, nous ajoutons simplement la prise principale dans une rangée impaire, lisez le jeu vide. Par conséquent, il surveillera si une activité se poursuivra, ce côté, quelle prise il y aura, n' obtiendra pas de solvant. Quelle activité peut se produire sur le socket serveur si nous tentons de lancer la date limite. Je suis connecté au même numéro de port sur la prise. Il n'y aura alors qu'une certaine activité. Ensuite, nous obtiendrons le message après l' impression de la sélection, puis cette sélection ne sera pas lue. C'est la raison pour laquelle j' affiche ce message. Donc comme moi, pour que vous puissiez obtenir ce que je fais exactement. Laissez-moi vous montrer. À ce stade, nous n'avons que survivre aux lignes nullclines lancées. Vous pouvez voir ici sur ce socket client des descripteurs qui sont dix sockets clients nous prenons et tous les scripts, ceux, mais tous ces sockets de dix lignes initialement 0 parce que aucun d' entre eux au moment où nous sommes lancés, nous n'en lançons aucun sur eux. Et cette socket est pour le côté serveur, la socket principale, qui sont, que je suis simplement en train d'imprimer ici. En fait. j'ai entendu parler. Et ensuite, vous pouvez voir ici. Vous pouvez voir ici que tous ces messages sont à l' écoute sur le port, côté serveur, en attente de connexion côté serveur. Ensuite, cette boucle while est en boucle à travers cette boucle infinie. Et cela dépend du moment où vous revenez, si vous quittez votre client, cela reviendra en fait. Donc ces choses, nous vous donnons ça pour commencer et vous pouvez voir ici. Md 0, toutes ces choses. Alors, que se passe-t-il ? Maintenant ? Quel message je reçois ici, si vous pouvez le voir ici, je reçois ce message en boucle pour souder la douille de joint. C'est ce que vous pouvez voir ici que j'imprime la valeur de la socket principale. Ici. Vous pouvez voir ici que j'imprime la valeur du maître Socrate. La prochaine, toutes ces lignes imprimées dix fois sont celle-ci. C'est ce que j'imprime. Donc, au départ, aucun client n'est là. Par conséquent, cette condition ne sera pas satisfaite. Et par conséquent, comme cela sera satisfait seul l'événement qui est une connexion client et cette valeur sera supérieure à 0. Mais comme maintenant un client organisé comme se connecte, nous ne lançons aucun client et donc cela ne le satisfera pas réellement. Et c'est pourquoi nous recevons dix fois ce sprint maintenant et nous obtenons, ce moment, nous obtenons avant de sélectionner réellement. Vous pouvez voir que la fonction de sélection est appelée. Mais nous ne recevons pas ce message. Pourquoi nous ne recevons pas ce message parce qu'il attend un temps infini. En fait, il va attendre et vous essayez de lancer la date limite. Le client se connectera à la même heure de numéro de port. En fait, il continuera d'attendre et vous ne recevrez pas ce message imprimé. Donc, selon la façon dont vous l'utilisez, si vous êtes donné, vous n'avez que trente secondes, alors il verra si l'air jusqu'à ce moment-là où vous avez lancé un client, si vous n'en avez pas la connaissance et le le délai d'attente a expiré, secondes de fête ou plus, puis il reviendra simplement, à partir de ce moment, en fait, il ne sera pas lu et vous recevrez ce message imprimé. Mais comme je mentionne ce dernier argument est nul en fait, il attend et attend qu'il obtienne une connexion client. Par conséquent, vous pouvez voir pourquoi j'ai affiché ce message pour vous expliquer. Allons maintenant sur cette dominante. Maintenant, lançons le client en fait, ce n'est pas le cas, je ne suis pas censé écrire notre programme client j'insuline. Pour se connecter au serveur. Vous savez comment vous connecter. Je vais ouvrir un nouveau terminal en fait, et puis ce terminal je vous dirai qui fait le numéro de port. Alors de ce côté, qu'est-ce qui écoute le numéro de port ? 88884 fois huit. Et donc je vais, sur la prochaine dominante, simplement Telnet sur le même numéro de port. Cela signifie que le client se connecte au projecteur latéral. Voyons ensuite, une fois que le client droit de se connecter au serveur, ce qui se passera. Vous pouvez donc voir ici que nous recevons ce message d'affichage. Laissez-moi en ouvrir un de plus. Dominante. C'est différent ou militantisme à la domination. dominance est possible signe et une dominante, je vais essayer de me connecter au serveur. Ce sera donc cette ligne. Vous pouvez donc voir ici, et ce que je vais faire, je mentionnerai cet hôte local. Ici. Je vais vous donner le numéro de sondage. Supposons que je vous donne de cette façon. Telnet est de se connecter à l'hôte local, car nous effectuons cette communication sur le même système lui-même, et donc nous n'utilisons pas les ordinateurs portables et nous nous connectons utilisation sur la même machine hôte. Et donc j'ai donné la boucle et le diabète sera la même chose à propos de n client la même adresse IP et nous écoutons quatre fois huit en fait. Et donc rho, ce numéro de port que je donne à ce nœud sport lui-même. Une fois que j'ai essayé de me connecter du côté client, ce que j'ai sur la console de ligne, essayant un à 7 points, un connecté à un service local faible, connecté à l'hôte local qui est connecté au serveur. Parce que mon argent est sur l'hôte local. Et ce message d'accusé de réception envoyé depuis le serveur. Cette règle avait donc envoyé ce message côte à côte. Voyons ce qui se passe côté serveur. Vous pouvez le voir ici. Maintenant, jusqu'à ce stade, j' ai eu un contrôle, et puis souvent j'essaie de me connecter du côté client. Tous ces messages sont imprimés sur le côté de nos sites. Alors maintenant, que se passe-t-il depuis que nous essayons de lancer le client et qu'il essaie de se connecter au serveur. Par conséquent, ceci, ceci. Ainsi, comme il y a une certaine activité sur la masse par prise de cette carte, la fonction de sélection a renvoyé la masse modale appropriée de description par socket à des fins de lecture. Et donc, il y a un nouveau lien que nous avons obtenu avec quel message s'agit-il ? Vous pouvez le voir ici. Nous avons reçu ce message après la sélection, et cette condition est satisfaite. est-à-dire que cette condition est satisfaite car elle est définie, ce socket serveur est triste car un client essaie de se connecter. Nous allons donc exposer et nous avons obtenu le descripteur de socket du client. Et puis nous imprimons simplement ce message sur le côté argenté, il s'agit d'une nouvelle connexion, d'une nouvelle connexion de prises en ligne. Nous imprimons donc ce message et nous envoyons ce message sur cette ligne. Ce message, lequel ? Ce message est ce message que je vous ai dit. Remerciements. Et à partir de ceux-ci, vous pouvez voir ici, nous envoyons ce message ici depuis le site du serveur. Ensuite, nous imprimons ce message sur le sol côté serveur. Donc, en revenant à la console, vous pouvez voir ici, ce message, c'est juste print f, que j'ai donné sur le message d' accusé de réception du site serveur. Et puis c'est le message que cela envoie déjà. En fait, lorsque nous appelons la même fonction à partir du programme serveur , ce message sera envoyé aux clients. Du côté client, vous pouvez donc voir les messages reçus. Vous pouvez voir comment le côté, alors qu'il communique avec cette ligne, comment le message que nous avons reçu des données sur le serveur client a dit, maintenant, la deuxième chose que nous verrons, maintenant, nous avons simplement placez le descripteur du socket serveur sur la base de données. Et faisons de l'activité sur le socket client. En fait, écrivons un message et voyons maintenant comment il va ajouter le descripteur de socket du client à la lecture des idées et comment nous allons le surveiller réellement à des fins de lecture. Ce que nous ferons, quel que soit le message que nous transmettons ici du côté client, j'ai dit que je voulais, j' imprimerai sur le client lui-même. Supposons donc que je donne ici, donc nounou, ce message, une fois que j'y entrerai, ce message sera envoyé du côté client. En fait, certaines données sont disponibles sur le socket client qui est censé être lu. Supposons que j'appuie sur Entrée, vous pouvez voir que j'ai eu un tsunami, un code sur le même site client. C'est donc ce que je voulais vous expliquer, que j'écris un message sur le socket client. D'un côté, j'écris le message uniquement sur le socket client. Que va-t-il se passer ? Viendrons ici. À ce stade. Vous pouvez voir ici, une fois le contrôle passé ici, en fait, encore une fois, le contrôle vient ici car au départ, cette condition ne sera pas satisfaite car nous n'ajoutons pas le socket client à lire La FDA. Mais nous avons obtenu cette valeur, mais en fait, il y a des clients sont 0 auront descripteur de socket avant son client car il sera une valeur non nulle pour cette condition sera satisfaite et nous sommes ajout de ce descripteur de socket de ligne dans cet IVS en lecture. Par conséquent, nous pouvons maintenant surveiller en fait parce que nous ajoutons également cette prise de ligne dans ce lecteur via un descripteur de socket. Une fois que cette fonction de sélection sera en attente , lire les FDA auront deux descripteurs de socket, un descripteur de socket pour cette ligne de produit descripteur à prise unique. Maintenant que nous, une fois que nous avons écrit, le message du côté client est effectivement tapé et le message sur le client en tant que connaissance de cela est ce qui va se passer. Quelque chose est mort sur le socket client. Nous avons écrit quelque chose de bizarre, je pense que quelque chose sur le socket client est en fait comme déco, nous sommes censés le lire. Il y avait des activités nettes sur la ligne, utilitaire, et par conséquent, cette fonction de sélection retournera réellement. Par conséquent, cette condition, une fois qu'elle sera vérifiée, c' est-à-dire chaque ensemble, ce descripteur de socket ne sera pas élevé dans cette vidéo ds, comme je vous l'ai dit après la fonction de sélection qu'il est appelée, puis dans ce cas il reviendra avec seulement les descripteurs qui sont déjà prêts pour la lecture doivent maintenant ne rien faire sur le socket du serveur. Nous écrivons sur le socket client et certaines données sont celles sur le socket client qui est censé être rouge. Et je mets cette condition ne sera pas satisfaite. Oui. Que se passera-t-il alors ? Ensuite, cette boucle for-loop est morte en dehors de cette condition et donc, nous vérifions à nouveau cette boucle pour qu'elle itère réellement, cela prendra autant de temps. Par conséquent, ce socket client à partir de zéros, nous savons donc qu'il n'y a qu' un seul client, et donc il s'agit d'une valeur non nulle. Par conséquent, nous vérifions que FD est défini si vous vérifiez si une activité quelconque, si ce descripteur de socket client est président lire un VS. Oui, c'est mort chez cette femme parce que vous avez raison. Vous avez écrit quelque chose sur cette prise de ligne qui est censé être rouge. Par conséquent, cette vidéo a été renvoyée. En fait, c'est n. Cette valeur est modifiée avec le descripteur de socket ou applique, ce qui signifie cela. Donc, les descripteurs de soccer aveugle présents dans VS en fait, car cela sera modifié après avoir appelé la fonction de sélection avec les descripteurs prêts à lire. Puisque l'activité se fait au niveau de l'application seul le client de la dette est une bactérie active ce qui sera vrai. Et dans ce cas, vous obtiendrez des clients d' évaluation de qualité est dit ce message que vous recevrez sur quel site et ce que vous faites réellement ici. Vous avez lu ce message, vous appelez la fonction de lecture. Quel que soit votre message. J'ai donc écrit uniquement comme sur le socket client. Donc, ce message sera que je collectionne sur le tampon. En fait, cela finira par donner ce message. Et depuis que le mandat soit couronné de succès. Si autre condition sera satisfaite et ce seul message que j'essaie d'envoyer. Vous pouvez donc voir que j'appelle la même fonction et c'est le descripteur de socket pour cette ligne. J'envoie le même message sur ce socket client. J'envoie ce tsunami. Puisque ce message que je lis à partir du socket Dark Line est que je collectionne dans le tampon et j'analyse le même message en appelant la même fonction. C'est la raison pour laquelle je fais écho. Par conséquent, je vais appeler la même fonction. Cela signifie que j'envoie le même message au client et je reçois ce deuxième message ici. J'espère que vous avez compris toute la logique. En fait, en utilisant la fonction de sélection, comment vous pouvez avoir un contrôle, combien de temps il faut. Si vous ne voulez attendre que dix secondes, trente secondes, vous pouvez simplement modifier cette valeur. s'agit simplement de vous expliquer comment vous pouvez avoir la possibilité de changer l'heure, comment contrôler réellement le temps. La sélection. Encore une fois, attendez, En fait, si vous voulez des secondes de fête, vous pouvez également attendre ce temps. Cependant, la programmation des objectifs est tout à fait. Je le ferai donc. Donc, on vous a tout mangé. Passons à Oui. Nous avons fini de rédiger le programme et exécuter l'anglais pour réaliser la communication cellulaire multi-cloud. Encore une chose d'amis. Permettez-moi également de vous montrer le lancement, lancer un autre terminal juste une seconde. Oui. Ce n'était qu'un seul client ou supposons que j'essaie de me connecter. J'ouvre le troisième terminal. Et encore une fois, la même chose. C'est aussi, oui, c'est que j'essaie de lancer un deuxième client. C'est ce que sont les clients des poètes. Vous pouvez donc voir trois terminaux ou serveur de port de terminal, un client à usage commun et un deuxième domino est possible. La deuxième pulmonale se forme avant son client et pour le deuxième plan. Supposons donc que je fasse cette source. Encore une fois, il essaiera d'envoyer, encore une fois ce client envoie une demande, une demande de connexion au serveur, donc latéralement l'acceptera en fait N enverra un message d'accusé de réception au deuxième client. En fait, vous pouvez voir un accusé envoyé depuis le serveur. Et supposons que je messages, bonjour, messages , bonjour, message de bonne nuit sera à nouveau un code sur le client. Nous sommes en train de les taper, je dis, bonjour. Vous pouvez voir combien d' esprits de personnes j'ai connu. Maintenant, j'arrive. Maintenant, nous en avons fini avec l'écriture du programme et l'exécution à l'aide de la sélection. Afin d'obtenir une communication multiligne sur serveur, vous pouvez voir comment la sélection est possible. À présent, lors de la prochaine session, nous verrons ces choses réellement ce que nous allons couvrir. Juste une seconde. Oui, nous allons couvrir ce qu' est la prise non bloquante. Donc tout d'abord, comme je vous l'ai dit, nous ne devrions pas opter pour l'approche de créer un fil conducteur pour chaque avion, que Rights Clinic, nous l'avons vue décider d'une page à la session précédente. Au lieu de cela, nous pouvons utiliser la fonction de sélection. J'ai également écrit le programme qui est également un autre moyen de les atteindre, je décline la communication par satellite et c'est pourquoi vous faites que la prise est non bloquante, verrouillée que nous allons à voir lors de la prochaine session. Vous constaterez également la différence entre les deux approches. Autrement dit, afin de parvenir à une approche de communication multi-client-serveur, comme l'utilisation de la fonction de sélection. Nous avons déjà vu comment obtenir quels sont les avantages et aussi la différence entre la prise non bloquante sorte que nous vous voyons sur l'octet couvrant ce qui est non bloquant dans le prochaine session, nous verrons alors la différence quand utiliser le Select quand utiliser le mode non bloquant. Donc toutes ces choses couvriront celle à utiliser lorsque vous sélectionnez sur une prise de chute, toutes ces choses couvriront et comment rendre la prise non bloquante que je vais vous expliquer. Une autre session que je consacrerai à l'écriture du programme et son exécution à l'aide de sockets non bloquantes. Donc, puisque jusqu'à ce moment-là, nous saurons comment faire une prise n'est pas bloquante. Nous allons également écrire un programme et exécuté sous Linux en langage C. La fabrication de la prise n'est pas bloquante. Donc, toutes les choses que nous aborderons lors de la prochaine session. Soyez prêt pour la prochaine session. Merci pour l'instant. Merci. Je ne suis pas amis. 25. SocketSession14 Makingsocket comme nonBlockingSocket MultiClientServerCommunication: Bonjour les amis. Aujourd'hui, nous verrons comment rendre la socket non bloquante afin obtenir un système d'exploitation serveur et Linux multicolore en langage C. Avant cette session, nous avons vu une approche différente afin de les atteindre ainsi que la communication du serveur client. Et c'était en utilisant la fonction de sélection et nous avons vu qu'elle est utilisée ainsi que les détails à ce sujet, nous avons écrit le programme et exécuté le système d'exploitation infirmière. Voyons maintenant que l'approche différente pour rendre le socket n'est pas bloquante afin d' obtenir la communication serveur multi-classes. Voyons donc les sujets que nous aborderons dans cette session complète aujourd'hui. Nous verrons ce qu'est la prise non bloquante. Ensuite, la différence entre les deux approches pour obtenir une communication serveur anticlines. C'est la différence entre la fonction Select et les prises non bloquantes. Donc, depuis que nous avons vu comment utiliser la fonction de sélection et le programme ainsi que son exécution. Maintenant, dans cette session, nous verrons un socket non bloquant. Donc, une fois que ce sujet de socket non bloquant sera couvert et que nous couvrirons cela, la différence entre fonction basilique et la prise non bloquante. Ensuite, la prochaine chose que nous aborderons celle à utiliser. Laissez-nous lire. Ensuite. Nous devons utiliser la fonction de sélection. Tout ce que nous devons utiliser la prise non bloquante et le week-end des hommes. Et même sur eux. Ensuite, nous verrons comment rendre la prise non bloquante. Nous verrons l'exemple. Ce sont les sujets que nous aborderons et publierons ces sujets et nous laisserons faire un par un. Le tout premier, c'est les prises non bloquantes. Alors, qu'est-ce que cette prise non bloquante rendant la prise non bloquante ? Nous allons vérifier si l' événement s'est produit. Et si oui, alors il traitera lui-même un autre, il reviendra immédiatement sans compléter, et donc les cellules et le but de la prise non bloquante. Par cette définition, cela signifie qu'il vous vérifiera et que le prélèvement de la prise n'est pas bloquant. Et supposons que nous appelons la fonction, alors dans ce cas, la fonction principale sera appelée indépendamment de la présence ou non des données. Il reviendra immédiatement. Les données infantiles sont donc bien président et pourraient-elles les lire et elles reviendront après avoir lu les données. Mais les données ne sont pas présentes sur le socket que vous avez rendu non bloquantes. Il n'attendra pas les données. Il retournera simplement l'heure du coucher lui-même, sorte qu'il reviendra immédiatement. Vous pouvez donc comprendre que chaque fois que nous rendons la socket non bloquante, nous ne sommes pas censés le faire. Nous sommes simplement censés agir immédiatement. Il reviendra donc immédiatement qu'il s'agit de rendre la socket non bloquante. Nous verrons donc ce que nous pouvons réaliser en faisant que la socket n'est pas bloquante. Ensuite, l'exemple est le même, un exemple que je vous ai donné maintenant, c'est-à-dire un exemple que je vous ai donné maintenant, c'est-à-dire si vous faites que la socket n'est pas bloquante et si vous appelez le V, et si ces données sur la socket, il le lira. Mais si ce n'est pas le cas, un entier retourne avec succès l'intégration des données. Il ne s'agit pas de données, alors elles reviendront immédiatement sans attendre que les données arrivent. Donc ce seul M m'a expliqué maintenant, j'espère que vous avez compris maintenant, quel est le but de faire la prise n'est pas bloquant. Quelles sont les choses qui peuvent être réalisées ? Alors ? Il retournera également, et c' est l'erreur puisqu'il ne s'agit pas de données sur le socket et que vous appelez la fonction, il n'y a pas de données. Donc, en tant que comportement, c' est qu'il n'est pas censé lire, donc dipôle il reviendra immédiatement. Par conséquent, vous pouvez comprendre qu'il l'a fait, car il n'y a pas de données qui ne peuvent car il n'y a pas de données qui ne peuvent pas effectuer de lecture, sans le respecter immédiatement et il retournera l'erreur. C'est que E bloquerait car l'audit peut revenir plus tard comme le même. C'est, encore une fois, que signifie cette flèche ? Cela signifie que l'appel de lecture aurait blogué, mais il est scripté, a été placé en mode non bloquant et vous a vu que je soutiens pour appeler la lecture du parfois. Donc. J'espère que vous avez compris ce sens de cette erreur. Cela signifie que l'appel mature de la fonction d'alimentation aurait pu être l' appel d'amarrage. Mais vous, vous, puisque vous faites le descripteur est en mode non bloquant en fait avant qu'il ne retourne cet Aaron en disant qu'il pourrait s'agir d'un appel bloquant parce que vous pouvez comprendre qu'il n' y a pas de données, et par conséquent, s'il n'y a pas de données qu'il était censé lire. Mais puisque vous fabriquez la prise n'est pas bloquante. Il est dit que vous aviez toujours fait que cette prise n'est pas bloquante. Par conséquent, il n'a pas attendu un peu , il est revenu immédiatement. Cela signifie que vous êtes censé appeler la fonction de lecture après un certain temps afin que lorsque vous appelez après un certain temps, cela puisse se produire. Ça et l'heure du coucher sont présents sur la prise. C'est ainsi que nous avons réalisé les choses réellement en cas de, au cas où la fabrication de la socket n'est pas bloquante. Vous pouvez donc comprendre le comportement. C'est ainsi qu'il exécute la fonctionnalité lorsque vous faites que la socket n'est pas bloquante. J'espère donc que vous avez compris quel est le but de rendre la prise non bloquante et comment elle se comportera. Dans le cas de la fonction de sélection. quel cas la fonction de sélection ME était censée éviter d'envoyer tous les descripteurs que nous voulions surveiller, et B donnait et B donnait le délai d'attente jusqu'à quelle heure il devait être. Si certaines des prises sont actives, Prêt, prêt à lire , prêt à être écrit. Et dans ce cas, il retournerait le nombre de prises, retournerait ces prises et vous effectuerez l' opération immédiatement. Dans ce délai Socrate ne deviendrait pas actif, alors il ne retournerait aucune des sockets et l' opération aurait été effectuée en cas de fonction de sélection. C'est comme si, en fonction du délai d'attente, vous pouvez contrôler la fonction de sélection. Quel est le montant que vous devez saigner réellement, et quel que soit le résultat, s'il y a des données ou s'il n'y a pas de données, mais qu'elles expirent. Après ça. Je monte en fait. Mais dans ce cas, vous pouvez voir qu'il reviendra immédiatement si vous avez fait que cette socket n'est pas bloquante. Et s'il n'y a pas de données , elles reviendront avec cette modification. Et encore une fois, vous pouvez appeler la fonction de lecture et vous pouvez simplement vérifier si la défense est présente et si oui, elle l'a refaite et retournée. Si ce n'est pas le cas, il reviendra immédiatement, vous l'appelez simplement des intervalles de temps. Vous pouvez appeler la même fonction de lecture. C'est ainsi que cela se comporte lorsque vous faites que la prise n'est pas bloquante. Je l'espère. Vous avez compris la différence. Voyons voir. Maintenant, l'exemple que j'ai expliqué vous appeler la fonction de lecture si vous faites de la socket est en mode non bloquant. Maintenant, dans le cas d'Unix, s' il s'agit d'un système d'exploitation Unix ou Linux, alors l'erreur qui peut se produire lorsqu'il n' y a pas de données sur le socket peut être un bloc. Alors que si c'est mauvais, s'il s'agit d'un système d'exploitation de fenêtre et de Beanstalk que vous utilisez. Dans ce cas, l'erreur s'il n'y a pas de porte sur la prise sera de ce type, c' est-à-dire un bloc de bois W SAE. s'agit donc que d'une différence entre les flèches dans le cas des Berliners et du système d'exploitation Windows. Vous devez maintenant vérifier le code d'erreur qui est le numéro d'erreur dans l'Unix. Et si c'est Windows, alors vous devriez voir par WAC, obtenir la fonction d'erreur perdue. Vous pouvez simplement vous lancer dans d' autres tâches et revenir plus tard pour lire la prise. Mais s'il s'agit d'une autre zone de prise, vous devez le gérer. C'est donc la même chose, mais si vous rencontrez la prise, la prise n'est pas bloquante. Donc, s'il n'y a pas de données présentes sur la socket et que la fonction de lecture est toujours appelée. Dans ce cas, il ne reviendra pas immédiatement et l'erreur sera déclenchée. Donc, au mieux, vous apprendrez que vous êtes censé appeler à nouveau la fonction de lecture. En attendant, vous pouvez effectuer d'autres tâches. Ainsi, cela ne fera pas de votre programme un blocage. Vous pouvez Eddie avec d' autres questions, votre programme ne sera pas décalé. Et vous pouvez également terminer s' il s'agit d'une autre erreur. Si ce n'est pas cette modification qui spécifie que s' il s'agit d'une autre erreur, vous devez la gérer. Ou chaque prise dans le cas où lieu rencontre la prise n'est pas bloquante. Tout est question de non-blocage. Voyons maintenant l'autre sujet cette session qui fait la différence entre la fonction de sélection et le fait de rendre ce socket non bloquant. Nous verrons ces différences. Ensuite, vous préférez peut-être déraciner l'appel de la fonction de sélection afin de réduire la communication du serveur. Que se passe-t-il alors ? Tout d'abord, les choses dont il aura besoin. Apprendre de nouveaux concepts en réalité, ainsi que l'écriture de 20 à 25 lignes de code. Nous avons donc vu que lorsque nous utilisons la fonction de sélection dans le programme lui-même lors de la session précédente, nous avons pu constater que nous devions apprendre de nouveaux concepts comme jeu vide en fait et les macros modales sont utilisées, ce que toutes les fonctions sont utilisées et ce que nous sommes censés faire. Et il y a des lignes, ces lignes de code par défaut que nous devons écrire lorsque nous utilisons la fonction de sélection qui est obligatoire. Dans le cas où vous créez les deux, socket n'est pas bloquante lorsque vous n'utilisez pas select et que cette socket n'est pas bloquante. Et dans cette approche, qu'est-ce que c'est ? Tout d'abord, cela implique moins d'événements sportifs que nous faisons que la prise n'est pas bloquante. Cela impliquera un score de piste adulte qui vous montrera dans le programme la prochaine session, vous verrez également un exemple simple. Faites trois lignes de code pour obtenir le non-blocage. Mais vous allez écrire un programme correctement et nous l'exécuterons dans la section suivante, nous verrons qu'il y a moins de code. Et il vous suffit de modifier vos tests et les erreurs en ajoutant à vos tests et les erreurs en nouveau le test pour un bloc de bois et un E, donc ce que vous êtes censé faire. Ici, lorsque vous faites la prise n'est pas bloquante. Tout d'abord, cela impliquera moins de code et il vous suffit d'ajouter le test. En fait, il y a une erreur. Cela bloquerait et EOG, puis vous devez ajouter du code pour cela. En fait, c'est-à-dire que vous pouvez appeler à nouveau la même fonction, il y a d'autres flèches, puis vous devez la gérer. Cela concerne en fait les lignes du code. Il y a plus de lignes de code et de fonction de sélection, mais moins de lignes de code dans les sockets non bloquantes. Si vous voulez dire que la socket n'est pas bloquante , la différence suivante est que lorsque vous utilisez la fonction de sélection, nous devons écrire 20 à 25 lignes de code. D'accord ? Ensuite, nous pouvons utiliser, nous pouvons à nouveau les réutiliser des modifications minimales et minimales afin de les gérer plusieurs sockets que je vais garder les socrates, puis vous devez ajouter très petites modifications dans afin de gérer les prises multiples. Ainsi, puisque vous avez déjà écrit 2225 lignes de code pour la fonction de sélection, vous pouvez réutiliser les mêmes lignes de code. Puisque vous devez gérer plusieurs prises, vous n'avez besoin que de modifications minimales. C'est seulement la chose que vous n'avez qu'à écrire ces lignes de code et les modifications chaque fois que vous modifiez, cela ne sera pas en surcharge. Ce n'est qu'un changement minimal dans le cas où vous utiliserez la fonction de sélection. Mieux vaut dans le cas d'une prise non bloquante, vous devez les personnaliser pour manipuler chacune des prises pour différentes prises. Il faudrait les gérer réellement, et leur comportement peut également être différent. Il peut lancer différentes flèches pour que vous deviez les manipuler. C'est donc une chose que vous devez faire en cas de prises non bloquantes. Mais cela est géré lorsque vous utilisez la fonction de sélection. Une fois que vous avez écrit ces lignes de code, si vous devez les modifier, des modifications minimales seront nécessaires. Maintenant, l'autre différence met en pause la sélection. Le code sera rassemblé en un seul endroit de votre code, tandis que le code permettant de prendre en charge la cuisson de la prise n'est pas bloquant sera distribué dans votre code. Et c'est compliqué de maintenir le code pour que vous puissiez comprendre où cette description que ce qu'il dit. Il est dit que chaque fois que vous utilisez select en un seul endroit, vous pouvez rassembler tout le code nécessaire pour utiliser la fonction de sélection. Mais lorsque vous préférez une approche différente pour que la socket soit non bloquante, cette approche que vous préférez, dans ce cas, dans l'ensemble du programme, votre morceau de code sera distribué. Cela peut également compliquer le maintien du code une fois que vos sockets brutes augmentent. En fait, dans ce cas, cela peut compliquer le maintien de l'ensemble du programme. La prochaine chose en fait, laquelle utiliser quand et s'il faut utiliser choisir si l'on doit utiliser non bloquant quand les utiliser. L'annonce a leur importance. Voyons voir. abord, nous pouvons choisir une approche si vous souhaitez centraliser la gestion des déclins et les tester et les gérer en même temps. C'est le cas lorsque vous devriez les préférer. Alors que vous pouvez opter pour l'approche de prise non bloquante si vous voulez que la lune soit distribuée belle approche. C'est parce que ce sont les choses lorsque vous avez pris la première sélection lorsque vous devez la première sélection lorsque vous devez signaler que la socket n'est pas bloquante. Quelle est la nécessité du menu Sélectionner doit utiliser le menu Sélectionner que nous verrons. Et puis quand vous devriez utiliser un non-fonctionnel que nous verrons ici dans cette rubrique. Donc tout d'abord, inutilement de la sélection. Ainsi, lorsque nous écrivons l'argent, nous savons que nous devrions être prêts à réagir aux événements des médias qui peuvent arriver au serveur. Ces scanners même, c'est bon. J'envoie la demande au serveur pour identifier et déconnecter, lire et écrire. Tous ces événements se produisent une fois le serveur lancé. Comme ces appels bloquent, lisent, écrivent tous ces appels qui bloquent traitement expliquent ce qu'ils sont. En fait, deux autres événements seront effectués jusqu'à ce que le traitement de l'événement actuel soit terminé. Et donc la nécessité de sélectionner se produit ce qu'il dit. Cela dit, supposons que depuis le lancement de ce service aucun réseau ne puisse être différent événements se produisant réellement, supposons que des lectures soient en cours. Dans ce cas, le serveur est occupé traiter la lecture et il n'y a pas de date, bloc de titre, d'autres parties de votre programme seront estampillées. Il ne sera pas en mesure de répondre à d'autres événements qui se produisent réellement. C'est donc ce qui se passe réellement. Par conséquent, dans ce cas, vous devez vous référer à l'aide de la fonction de sélection. C'est donc ce que je mentionne ici, c' est-à-dire que cette sélection est nécessaire. Quelle est la nécessité d' utiliser la fonction de sélection ? Ce n'est pas nécessaire. Nous pouvons éviter le blocage, vous pouvez également traiter d'autres tâches. Vous pouvez utiliser la fonction de sélection afin d'éviter de bloquer votre programme. Ensuite, dans ce cas, sélectionnez ce que nous donnons nous donnons la liste des appels d'accueil à surveiller. Oui. Et elle se bloquera tout le temps. Toute personne sur un appel de blocage devient prête. Cette sélection ne sera alors pas bloquée une fois qu'elle en a déjà causé un. Vous pouvez donc comprendre ce que nous disons. Vous dites que, vous savez, en laissant sélectionner, nous donnons à ce chien des descripteurs, des douilles, des descripteurs que nous donnons et qui sont listés sur les prises. Ce que nous devons surveiller pour lire ou écrire en fait. Que se passera-t-il alors ? Et vous donnez la valeur du délai d'attente. Ainsi, la valeur démodée que nous connaissons est utilisée pour contrôler la durée de la fonction de sélection. Selon la valeur que vous donnez. Un délai d'attente, il reviendra immédiatement, audit reviendra, il en obtiendra quatre indépendants. Je suis toujours une nouvelle activité qui se produit réellement sur les prises que vous avez données. Vous avez un contrôle. En fait, ce que vous êtes censé faire. Il s'agit de la sélection. Ensuite, ce qui est inutile sur le socket non bloquant par ce fournisseur est une socket non bloquante est nécessaire. Supposons donc que, par la codéine sélectionnée, que se passera-t-il ? Vous obtiendrez la liste de l'événement prêt à traiter une fois l'appel sélectionné terminé. Lorsqu'il obtient certains descripteurs de fichiers prêts, il renvoie les deux. Je vais les descripteurs qui le sont déjà, dans ce cas, que se passera-t-il ? Cela peut se produire au moment où le serveur passe l'appel. Supposons qu'une plage de la prise que vous auriez donnée dans la fonction de sélection soit prête à être lue. La fonction de sélection vous renvoie ce descripteur. Et vous pouvez simplement traiter en appelant simplement la fonction de lecture, car vous savez que cette prise est prête à être lue car vous savez que cette prise fonctionnellement, mais laissez-moi dire qu'elle est présente dessus. À cette époque, la situation a peut-être changé. C'est le client qui envoie les données, elles peuvent disparaître avant que nous essayions de lire, avant que vous ne meniez le leader. En fait, à ce moment-là, la situation a changé avec ce client qui envoie les données peut disparaître. voyez, vous pouvez toujours prédire ce qui peut arriver. Supposons que le client envoie des données au serveur. Le serveur essaie de le lire entre les deux. Uniquement. Certaines lois de connexion se sont déconnectées et les données, par conséquent, une nouvelle, pas actionnement, peut se produire à chaque fois que nous ne pouvons pas prévoir. Non seulement dans ce cas, ce qui va se passer. Il se comportait correctement. Il vous renvoie des descripteurs qui, qui sont devenus actifs dans lesquels vous devez traiter la fonctionnalité d'édition. Bénédiction. Mais à ce moment-là seule une situation survenue en raison d'un déclin a été déconnectée. Et ce client envoyait les données sur le socket que le serveur était censé faire. Dans ce cas, finalement, la lecture n'aura pas lieu. Dans ce cas, vous pouvez préférer la prise ne soit pas bloquante. Donc cette chose, nous ne connaissons pas Mia et libérons ces choses que nous ne savons pas quand cela peut arriver. Ce sont des choses imprévisibles qui, hausse, aboutissent à des résultats imprévisibles. Dans ce cas, il est indiqué d'utiliser cette approche pour respecter la socket n'est pas bloquante. Donc parce que nous savons qu' alors nous faisons que la prise n'est pas bloquante. Supposons donc que vous appeliez la fonction de lecture. Dans ce cas, la fonction de lecture sera appelée et si des données sont présentes sur elle, elle la lira et elle sera renvoyée avec succès. Mais s'il n'y a pas de données présentes sur elle, pas de problème, elle reviendra immédiatement et cela vous donnera, les deux disent que puisque les riches auraient dû devenir l'appel bloquant parce que il n'y a aucune donnée à ce sujet. Mais vous avez quand même créé le descripteur, puisque c'est toujours que vous avez fait que la socket n'est pas bloquante. Maintenant, votre support, Il s'appelle nouveau la fonction de lecture après un certain temps, vous appelez à nouveau la fonction de lecture. Si aucune donnée n'est disponible, elle sera immédiatement renvoyée. Une fois encore. Vous appelez la fonction de lecture. S'il y a des données, il lira les données et les retourneront. Donc c'est comme ça que le non, c'est comme ça qu'il se comporte le menu signifie que la socket n'est pas bloquante. Il s'agit donc de tout ça. Il s'agit donc d'un autre exemple. En fait, si nous faisons l'appel d' acceptation S non bloquant, donc supposé être je fais que la socket est non bloquante et nous les appelons sauf la fonction sauf se produit d'abord sur le trottoir. Et chaque fois qu'il y a une connexion depuis la ligne. Ainsi, le sens linéaire de la demande de connexion dans le cas où le serveur serveur présente une connexion. Mais puisque vous faites le socket n'est pas bloquant et c' est l'appel d'acceptation. Tout dans cet index et neige intégrée et en fait n'envoyant aucune connexion et acceptent toujours cet appel. Et cette acceptation n'est pas bloquante parce que vous faites que votre socket n'est pas bloquant, alors quel sera le comportement ? Il reviendra immédiatement. Vous pouvez donc comprendre qu'à l'exception de ce côté-ci, il n'y a pas de ligne qui envoie la demande au serveur encore acceptée. Cela signifie qu'il n'y a pas de connexion là-bas et qu'il reviendra immédiatement. Il ne sera pas destiné à la demande de connexion. Cela ne bloquera pas la connexion de votre programme . Il reviendra immédiatement. Même s'il n'y a pas de connexion, il reviendra immédiatement. Il n'attendra pas, mais cela vous donne l'erreur en fait comme un bloc maléfique seulement en disant que sauf aurait pu être le blocage parce qu'il n' y a pas de connexion, vous avez quand même fait la prise n'est pas bloquante et doit donc revenir immédiatement. Vous êtes donc censé appeler la fonction de sortie après un certain temps. C'est l'utilisation que vous avez faite que cette socket n'est pas bloquante. Vous devez vous comporter de cette manière. C'est ainsi que cela fonctionne. Maintenant, nous allons être libérateurs. Ce truc va en fait écrire le programme dans l'article lors de la prochaine session et nous allons exécuter. Il verra comment rendre la socket non bloquante et nous verrons son exécution. C'est ainsi que vous connaissez peut-être le sujet, c'est-à-dire comment faire un socket n'est pas bloquant. C'est donc ainsi que vous parvenez à rendre votre socket non bloquant. Vous devez avoir une balle molle, utiliser l'appel système FFC et TL. Vous devez effectuer ces appels système FC et TL ou quelle est cette fonction f, c et d l ? Il effectue les différentes actions sur les descripteurs ouverts. Les descripteurs sont ici vos descripteurs de socket. Il effectue donc diverses actions sur le, sur le descripteur de socket ouvert est le descripteur de socket micelle ouvert, il effectuera diverses actions, telles que l'obtention, la modification du attributs d'un fichier sur le descripteur de socket. Donc, ce qu'il peut faire, deux actions qu'il peut effectuer, les attributs attrayants des descripteurs de socket modifient les attributs des descripteurs de socket. Jusqu'à présent, les descripteurs de socket, vous pouvez comprendre que cela peut être différent lors des critiques. Supposons donc que vous deviez rendre la prise non bloquante, donc il y a un quad. Vous pouvez modifier ces attributs en fonction de l'exigence réelle. Vous avez donc posé des questions sur tout simplement censé les appeler FC et traiter afin de rendre la socket non bloquante. Vous verrez donc ci-dessous comment utiliser ce FC et TL. C'est ainsi que vous utilisez. Tout d'abord, vous donnerez le premier argument en tant que description. Il s'agit d'un descripteur de socket dans lequel vous en avez deux en mode action. Et le deuxième argument, vous allez donner le commandement. Alors qu'Amanda, Vous devez donner, en fonction de l'exigence, ce que vous voulez réellement sur la socket pour exécuter cette commande que vous allez donner et les lignes que vous pouvez comprendre . j'ai un certain nombre d'arguments ici. C'est ce qu'il est censé faire, et c'est un exemple en fait post-op. Ce que nous faisons si vous devez rendre cette socket n' est pas bloquant, appelant ce système de fonctions appelé f, c et d l. Et nous passons le premier argument en tant que descripteur de socket. Et le second est un commandement. Nous avons donc vu que le squelette laisse cette force être le descripteur de socket et le second sera parmi lequel vous souhaitez effectuer l'action. Ces trois arguments sont facultatifs pour vous. Ici, nous donnons ce commandement. Nous voulons que cela arrive, allez jouer sur le descripteur de socket. Et là encore, vous appelez la même fonction. Vous passez le descripteur de socket et vous donnez ceci, vous appelez cette fonction, vous le ferez, vous donnez cette commande dessus. Vous voulez réellement définir cette chose sur le descripteur de socket. Et puisque ces trois points, mentionnés ici, ce sont des options. Donc ici, vous devez faire en le drapeau ne soit pas bloqué. C'est ainsi que ces deux lignes de code que vous devez écrire lorsque vous créez la socket ne sont pas bloquantes. J'ai affirmé en quoi consiste ce commandement ? Va chercher le remplissage. Il obtient le drapeau ouvert ou adopte ce script. Et FCA jusqu'à ce qu'il soit lu, retournera ces résultats. Cela permettra d'obtenir la source. Bien que, ce que cette incapacité visible fait réellement cette commande va faire, elle ouvrira le descripteur de socket et elle retournera ces X en conséquence, donc ce drapeau sera retourné. C'est le but de ce gamma et de la SEC FL. Amanda doit rester le drapeau de statut. Qu'est-ce que le descripteur de socket pour rendre la socket n'est pas bloquant. Vous pouvez utiliser cet indicateur qui n'est pas bloqué. Cinq obsolètes. Vous avez compris que cette commande particulière utilisée pour obtenir les indicateurs ouverts présents pour la socket est retournée et abrogée. Renvoie cela ici dans cet indicateur et définissez-le à j pourcent, ce script d' ordre noir d'état. Ensuite, vous pouvez l'utiliser pour faire votre, il est en mode non bloquant. C'est ainsi que nous parvenons ce que la socket soit non bloquante, bloquante. Nous allons donc l' utiliser lors de notre prochaine session, vous allez écrire le programme. La fabrication de la socket n'est pas bloquante afin obtenir une communication multi-client-serveur, bien qu'il s' rendre la socket non bloquante. Donc toutes ces optiques, nous le sommes, nous avons couvert, que nous avons vu ici. C'est ce qui est une prise non bloquante. La différence entre la fonction de sélection, différence entre une prise non bloquante. Nous avons vu combien de lignes vous devez coder davantage au cas où vous utilisez la fonction de sélection par rapport à celle de la socket non bloquante. Une fois que nous avons écrit le code, nous pouvons le réutiliser et la modification est très moindre si c' est le cas, si nous devons gérer plusieurs sockets. Alors qu'en cas de non-blocage, même si le code est répertorié, mais s'il y a un grand nombre de sockets, vous devez le gérer , le code, alors vous devez faire une tâche supplémentaire. Nous avons également vu dans le cas de la fonction de sélection, quand utiliser la fonction de sélection quand utiliser le socket est en mode non bloquant. Et nous avons déjà vu qu'ici pour Instapoll, il sera rassemblé en un seul endroit mais un socket non bloquant, il sera distribué tout au long de votre cours. Il est difficile à entretenir s'il se dissout. Grand nombre, grand nombre de prises. Ce sont les différences que nous avons vues également, nous avons vu pour faire de la socket une sélection. Nous avons vu ce qui n'est pas nécessairement de la fonction de sélection. Nous l'avons vu. Nous ne voulons pas que le programme s'arrête longtemps. Vous pouvez utiliser la fonction de sélection. Nous avons un contrôle sur le délai d'attente. Nous avons vu alors que nous pouvons nous préparer. Faire un socket est un socket non bloquant au lieu d'utiliser la quantité sélectionnée, j'ai vu que la situation peut se produire en cours d'exécution, nous ne savons pas que même la fonction de sélection retourne avec les descripteurs de socket qui sont prêts. Mais en raison d'autres situations telles que les lois sur les connexions, tout peut arriver. Client qui envoyait des données s'il l'avait, Il est connecté d'une manière ou d'une autre, fait une situation, situation aléatoire. Dans ce cas, il n'y aura pas de guitare. La date de décembre, qui était prête à effectuer l'opération de lecture. Puisque le client s'est déconnecté, il ne pourra pas lire. Tout peut se produire à tout moment. Donc, dans ce cas, vous avez fait que la socket n'est pas bloquante à utiliser lorsque je l'ai spécifié. Et nous avons vu comment rendre la prise non bloquante. Vous devez donner ce drapeau. Les deux fonctions que nous avons vues, vous devez appeler f, c et d. Donc toutes ces choses que nous sommes, nous sommes la bande passante et la prochaine session, nous écrirons le programme pour répondre au socket non bloquant et nous l' exécuterons en indiquant l' utilisation de la programmation C. Soyez donc prêt pour la prochaine session, qui sera un dévouement complet pour écrire le programme et exécuté. La fabrication de la socket ne frappe pas afin d'obtenir une communication multi-client-serveur. J'en ai fini pour l'instant, mes amis. Merci beaucoup. Merci. 26. SocketSession15 de programmation : la Makingsocket de calcul comme nonBlockingSocket MultiClientServ: « J'ai l'air amis qu' ils écriront le programme de socket ou rendront le socket comme non bloquant afin obtenir multiligne », a dit « Eh bien la communication » et nous allons également l'exécuter sous Linux en utilisant le C langue. Donc, avant cette session, nous avons vu que cela dictait comment rendre la socket non bloquante. Nous avons donc vu différentes approches pour atteindre des anticlines, plusieurs communications, nous avons vu quel était le problème lors de la création du thread pour chaque client qui se connecte à la salve qui sont divers inconvénients que nous avons abordés lors de la session précédente afin d' éviter d'utiliser cela pour obtenir un fil de discussion. Mais chaque client, nous l'avons surmonté en utilisant la fonction de sélection. Nous avons également vu num, importance de la fonction de sélection et nous avons vu les détails. quoi sert l'utilisation du stylo de fonction Select pour l'utiliser ? Et nous avons également écrit le programme et l' exécuté au cours de la session précédente. Ensuite, nous avons vu que l'approche différente consistant rendre la socket n'est pas bloquante au lieu d' utiliser une fonction de sélection. Nous avons donc vu des hommes utiliser la fonction de sélection quand utiliser faire que cette socket n'est pas bloquante. Nous avons vu toutes ces choses au cours de la session précédente. Comme nous le savons, car nous connaissons comment fabriquer la prise n'est pas bloquante. Je vous ai expliqué avant cette session, je vous ai expliqué quel est le but de celle-ci ? Écrivons le programme et exécutés en rendant le socket non bloquant. Permettez-moi donc de vous décrire brièvement le mode non bloquant. Et commençons à écrire le programme sur les unités et nous allons l'exécuter. Commençons par une prise non bloquante, comme je vous l'ai décrit en session audio. Rendre la prise non bloquante. Cette opération vérifie si l' événement s'est produit. Et si oui, alors il se traitera lui-même à ce moment-là, car il reviendra immédiatement sans attendre les améliorations servent le but des prises non bloquantes. Donc, lorsque vous faites, vous savez qu'il a suivi chaque fois que vous créez un mode de blocage de socket, si vous voulez faire de la socket en mode non bloquant, nous avons un appel système que nous verrons à l'avance. Mais une fois que vous faites que la prise n'est pas bloquante, alors comment elle se comportera. Permettez-moi de décrire cela. Dans ce cas, supposons que votre socket soit non bloquant et que vous appeliez la fonction de lecture. Vous savez que lorsque l'opération de lecture, elle ne lit qu'un événement qui est une donnée sur la socket, alors vous seul pouvez être ces données de la socket. Donc dy dt l' accompagnera ne réussira qu' à chaque fois qu' il y a une prise. Donc, cette lecture s'appelle. Et s'il y a des données présentes sur cette prise , elle lira les données et retournera et se coucher. Mais il ne s'agit pas de données sur cet organe. Et vous appelez la fonction de lecture. Et dans ce cas, vous savez que vous avez fait que cette prise n' est pas bloquante. Par conséquent, il n' attendra pas les données. Il reviendra immédiatement. Vous pouvez donc comprendre que des données existent ou non. Il ne lira pas car vous faites qu' une socket n'est pas bloquante. Vous ne voulez pas que votre programme soit bloqué. Vous ne voulez pas mettre votre programme en main et donc vous reviendrez immédiatement sans attendre, donc vous n'obtiendrez pas, c'est ce que nous réalisons. Le lieu a fait la prise n'est pas bloquante. Alors, qu'est-ce que le travail se passe dans ce cas, il n'y a pas de données et vous appelez la fonction. Dans ce cas, il reviendra immédiatement et il vous donnera également quelques erreurs, est que les erreurs décriront en fait que le socket vous de ma vertu vous étiez censé le faire comme bloquant. Mais comme vous avez fait que cette socket n'est pas bloquante lorsque les données ne sont pas meilleures, ne le faites pas immédiatement. Par conséquent, vous êtes censé appeler la fonction de lecture après un certain temps. C'est ça le comportement. Cela se produit dans tous les cas lorsque vous faites que la socket n'est pas bloquante. Donc, tous les détails que je vous ai déjà expliqués avant cette session. L'objectif principal de cette session est de rédiger le programme. Vous verrez comment rendre la socket non bloquante et comment l'exécuter. L'exemple en fait, lorsque vous annulez le socket n'est pas bloquant et lorsque vous appelez Amanda Silver, provoquez la fonction de sortie. Vous savez que cette fonction de sortie, tout d' abord, elle est appelée des deux côtés. Ensuite, il est appelé chaque fois que le client envoie une demande, des demandes de connexion au serveur, puis la banlieue doit supposer accepter ces demandes de connexion du client. Dans le, si vous faites votre socket n'est pas bloquant. Et si vous appelez la fonction de sortie sur le site, s'il n'y a pas de connexion client, si aucun client n' envoie de demande. Et comme vous avez fait que la socket n'est pas bloquante et que vous suivez sauf la fonction, elle n'attendra pas. En attente clinique, il suffit de revenir immédiatement afin qu'il vous donne l' ensemble comme je l'ai décrit. Savez-vous que cela va vous donner cette erreur ? Vous feriez un blocage. Cela signifie que vous pourriez avoir un socket multimédia comme un blocage, car il n'y a pas d'action, au lieu de cela, vous appelez la fonction de sortie. Par conséquent, vous appelez à nouveau la fonction de sortie après parfois, donc cela donnera cette erreur indiquant qu' après certains coins la fonction de sortie et vérifie s' il y a une connexion avec elle, sauf en fonction des besoins, vous pouvez essayer un certain temps. C'est donc ce qui se passe réellement, si vous faites que cette socket n'est pas bloquante. J'espère donc que vous avez, maintenant, voyons que nous avons déjà vu lors de la session précédente juste pour décrire brièvement comment rendre la socket non bloquante. Tout d'abord, vous devez appeler ce F, C et D L, qui est un système appelé cette fonction que vous opposez à appeler. Et vous devez passer dans ce format. C'est-à-dire que vous devez passer le descriptif. Ce sera sur le descripteur de socket. Et le deuxième argument sera la commande. Commande. Est-ce ce que vous voulez réellement faire sur ce descripteur de socket, activité que vous devez mentionner en fait comme commande dans le deuxième argument. Et ces trois points indiquent que vous pouvez donner plus d'options en option, si vous devez utiliser FC et teal. Et nous avons également vu ces deux lignes de choses que vous êtes censé faire et vous faites que cette socket n'est pas bloquante. Vous devez appeler ce FC et TL et vous devez passer le descripteur de socket et la commande, vous voulez obtenir FL. Quel est ce type qui est tombé dans le suivant pour le descripteur. Et retournez ces fléchisseurs, son rôle est adapté pour obtenir le suivant à partir de ce descripteur de socket, à partir du descripteur de socket qui va récupérer le flex en fait, et vous pouvez collecter dans cette variable. Ensuite, vous appelez le même appel système et le descripteur de socket, mais vous obtenez ceci. C'est le trait de soulignement F défini FL. Quel est le but de cette commande ? Il enverra un indicateur d'état pour le descripteur. En ce sens qu'il enverra X dans le descripteur de socket. Et la troisième option est moi, et c'est facultatif. Donc comme vous devez rendre cette socket non bloquante, vous devez donner cette opportunité est très importante. Vous devez mentionner ce non-blocage car vous voulez que votre socket ne soit pas bloquante. Ceci est utilisé en fait pour que votre socket ne soit pas bloquant. Vous donnez donc cette option en tant qu'argument de sortie. C'est donc ainsi que vous pouvez faire de la prise un socket non bloquant. Commençons maintenant à écrire le programme et l' exécuter en utilisant le langage C. Je vais donc vous expliquer les instructions ligne par ligne et ensuite nous allons exécuter. Cette session porte sur le système d'exploitation Windows et le programme que nous allons écrire sur le système d'exploitation Linux. J'ai donc installé ici la boîte Oracle Mm. En fait, cela me donnera la croix, je peux compiler mon programme sur le système d'exploitation Linux. Si vous n'avez pas de Linux, vous pouvez également l'installer est très important z2 installer Oracle, et vous pouvez simplement commencer à écrire le code là lorsque vous lancez qui sera impliqué ou sinon, si vous avez un système d'exploitation d'unités, vous pouvez simplement écrire le programme. Commençons donc à écrire le programme. Cette balle. Permettez-moi de passer à mon système Linux. Ceci est lancé Oracle VM, et c'est mon système d'exploitation, le système d'exploitation Linux. Je me connecte donc. Laissez-moi d'abord ouvrir le terminal. C'est mon programme. Cela me permet de vous montrer le chemin. Dans mon dossier personnel. J'ai créé ce vide qui, en fait, selon le but de mon problème, mais il est vide. Les prises non bloquantes sont données à ce faisceau lui-même ici, et c'est à dire sélectionner la programmation de socket l'aide d'une prise non bloquante. Nous allons ouvrir le téléphone de l'interface utilisateur. Oui. Voici donc mon programme en fait. C'est donc mon programme serveur, ou faire du socket n'est pas bloquant. Maintenant, voyons un par un ce que nous allons faire. Tout d'abord, comme je vous l'ai montré dans la présentation elle-même, l'exemple de la fonction de sortie. Supposons donc que vous rendiez le socket comme non bloquant et que nous savons que la fonction XOR est appelée côté serveur. Donc, si vous faites que votre orquille n'est pas bloquante et que vous appelez la fonction de sortie, elle se comportera correctement gênée. Certains clients en font la demande. Il acceptera cette connexion. Donc, c'est bon. Mais qu'en est-il s'il n'y a pas de demande de connexion de ligne sur l'argent ? Et puisque vous faites que ces socket réseau ne sont pas bloquantes et que votre collègue, sauf la fonction. Dans ce cas, de toute évidence, même s'il n'y a pas de demandes de clients, il n'attendra pas les dépenses et les mesures prises. Il reviendra tout simplement immédiatement. Donc, dans ce cas, ce qui devrait se passer, puisque vous êtes le but principal du programme était qu'il accepte la connexion, la connexion demande une assistance que vous n'avez pas non standard. par conséquent, il n' y a pas de demande client. Il n'est donc pas question de l'accepter. Par conséquent, vous êtes revenu immédiatement. Encore une fois, vous pouvez appeler après un certain temps, vous pouvez appeler sauf la fonction activée. Et vous savez qu'il vérifiera à nouveau s'il y a lien de financement et que c'est mieux, il reviendra immédiatement. C'est donc ainsi que vous pouvez porter, répéter la même activité de manière indépendante après un certain montant. Nous ferons la même chose. Il s'agit du code du serveur. Je vais vous expliquer ligne par ligne les instructions. Nous allons ensuite compiler ce programme. Nous allons exécuter les programmes cérébraux. Puisque nous sommes moi. Le socket n'est pas bloquant et nous appellerons la fonction de sortie. Par conséquent, il s'agira simplement d'un OT qui lancera n'importe quel client. Donc, quand il y en a encore nous appelons des textes qui fonctionnent sur le solveur. Il n'attendra tout simplement pas, il reviendra immédiatement. Autres et dépendants du réseau. Vu cet en-tête, nous pouvons à nouveau fausse fonction de sortie de la somme entre le temps de doc. Et nous verrons que c' est ESNet s'il peut accepter la connexion gênée certaines demandes de connexion client, et si ce n'est pas le cas, il reviendra immédiatement à nouveau via n. Si nous avons lancé ce client en fait l'heure du coucher sauf que la fonction est appelée et puis il acceptera les retours de connexion avec succès. C'est ce que nous allons réaliser dans le cadre de notre programme. Vous avez acheté ce que j'essaie de dire, même cela sera effacé par je vais vous expliquer les instructions ligne par ligne. Voyons voir. Supposons donc qu'il s' agisse d'un programme de socket serveur et que nous connaissions les bases. En fait, nous avons déjà vu comment créer une socket et les détails à ce sujet, et quelles sont toutes les fonctions nécessaires pour utiliser le service dont j'aurai besoin pour appeler la fonction principale. Nous devons également écouter, nous devons également accepter la connexion car nous nous concentrerons sur la fonction sauf. Voyons maintenant que c'est que c'est censé contenir ces fichiers d'en-tête d'installation que vous devez déclarer réellement. Et c'est votre fonction principale. C'est votre fonction principale. Vous savez que, bien qu'il s'agisse d'une fonction principale, c'est un point d'entrée pour démarrer une exécution de votre programme. Ainsi, lorsque le programme s'exécute, le contrôle arrivera à la toute première ligne de la fonction moyenne, et il sera exécuté ligne par ligne séquentiellement. Alors, ce que vous faites, alors tout d'abord, qu' est-ce que nous sommes censés faire ? C'est censé vous donner envie de créer un socket côté serveur. Et nous voulons le rendre non bloquant. Et nous devons, chaque fois que nous avons affaire à la socket serveur, nous devons faire un objectif, certaines fonctions comme nous avons d' abord par les serveurs d'index socket à numéro de port, puis nous devons écouter sur le numéro de port. Et le troisième que nous devons accepter une action appelant réellement la fonction socket. Nous savons que ces trois paramètres, sont les trois arguments que nous transmettons. Il dit que si Underscore init est un socket de famille d'adresses, et que c'est un type de socket que nous voulions, nous voulions créer un socket de flux. Et ce troisième argument est 0. C'est ainsi que vous créez une socket et vous prendrez réellement une socket. Lorsque vous créez la socket, elle renvoie le descripteur, le descripteur de socket argenté, que je l'ai nommé comme socket maître, et il est du type différent. Et vous pouvez voir que je l'ai déclaré avant de l'utiliser. Il s'agit d'une vérification des erreurs. Si c'est tout, vous pouvez obtenir une protection contre les défaillances de cette manière. C'est ainsi que votre socket de serveur God a créé et c'est le descripteur de la socket de soulignement maître sans nom de socket serveur . Maintenant, vous avez fini de créer la socket. Maintenant, la chose suivante est que vous devez rendre cette socket non bloquante. Et nous avions vu combien de personnes y arrivent. Nous avons vu suffisamment de présentations. Voyons voir. Ici, vous pouvez voir qu'il y a un médiéval qui est déclaré ici. Vous pouvez voir que nous appelons FC et TL, c'est un appel système. Et nous le faisons de cette manière. Donc cet appel système s'appelle en fait, j'ai vu jusqu'à ce que nous utilisions cela, nous devons faire qu'une socket n'est pas bloquante. Par conséquent, la prise de largeur nous devons rendre le non bloquant. Nous en avons trop. Ce socket serveur n'est pas bloquant et l' ensemble du vecteur sera le premier argument. Ensuite, le deuxième argument, c'est que nous avons vu quel est le but de cette seconde chose ? Tout d'abord, la commande secondaire est une commande que nous avons vue dans la présentation et elle sert à récupérer le flex présent. Ce drapeau sera donc récupéré et il sera collecté sur ce bouton média que nous avons déclaré plus tôt. Dans la méningite, une vérification d'erreur. Et encore une fois, nous devons suivre ce système appelé PNB ou nous l'avons vu. Et nous allons à nouveau passer le premier argument en tant que socket, que nous voulons en faire une socket non bloquante. Il s'agit du descripteur de socket du serveur. socket qui renvoie le nom du descripteur de socket du serveur doit donc indiquer que nous passons comme premier argument dans ce système. Et à la seconde où nous passons cette commande qui est soulignement F définit la pensée. Traitement de cet indicateur entre les cartes, ainsi que nous passons cette option qui n'est pas soulignée non bloquée. Il s'agit des options de drapeau. Donc, comme nous devons rendre la prise non bloquante, nous devons donner cette option. Ceci est nécessaire de l'aide nécessaire. C'est ainsi que nous fabriquons ce genre de socket dont le nom est en masse a tendance à marquer la socket S en mode non bloquant. Nous donnons donc cette option et c'est la vérification des erreurs. Vous pouvez donc voir comment ces éléments sont réellement utilisés pour rendre la socket non bloquante et ces deux lignes sont utilisées pour effectuer les deux lors de la vérification de l'édition ici. Vous avez compris ce point, je l'espère. Je suis en train de créer une prise et nous le faisons comme un on. La prochaine chose du côté serveur, ce que nous sommes censés faire, c'est que nous devons, vous savez, c'est une structure. Nous prenons cela comme un DDR et c'est des types de données, struct, sock, ADD ou soulignement INV, sachez quel est le but de cette structure ? Nous devons renseigner tous les membres sur cette capacité médiatique, DDR. Vous devez remplir le numéro de port DBSPL, la famille, ainsi que nous avons cette DPLL. Puisque nous voulons une barre latérale encline à communiquer sur le même système d'exploitation, même machine hôte, en fait, la même adresse IP avant de donner cette option IN ADD ou de souligner NE. Ici, vous pouvez voir un par un, cette variabilité, les moyennes que nous ajoutons sont liées aux détails que nous donnons, nous les remplissons avec ces services qui s'adressent à la famille. Il s'agit d'un numéro impair auquel nous voulons que le serveur achète ce numéro de port. Et voici les coordonnées de l'adresse. Nous le savons. Quel est le but de cet ion, en fait le carré ARM une image que j'ai dans ma session précédente dans le socket puisque nous voulons que le serveur et le client communiquent sur la même machine hôte, les hôtes locaux. Nous sommes donc censés donner cela et je veux vous expliquer en détail dans une session de volume. La formation elle-même. Vous pouvez le voir ici. Ensuite, nous appellerons la fonction bind sur le socket du serveur nommé maîtres ou nous pouvons être portés pour lier ce socket de serveur, c' est-à-dire le socket maître à ce numéro et qui sera également transmis comme un le deuxième argument est l'accent mis sur l'ADR, dont nous avons ici les détails des filtres. Je ne pensais pas que l'argument sera la taille de cet ADR. Il s'agit de la vérification des erreurs. Encore une fois, qu'est-ce qui fait que nous sommes censés tomber ? Nous en avons fini avec cela. Maintenant, nous sommes censés écouter sur cette socket, c' est-à-dire le socket serveur. Et c'est la quantité de connexion de ligne en attente que vous pouvez seul. Vous pouvez donc donner n'importe quoi en fonction des besoins. Encore une fois, la vérification des erreurs est effectuée ici. Et puis vous L' essentiel commence à vous voir que je continue d'itérer. Je ne vais pas continuer en fait. Ce sera infini et, selon cette chose, il reviendra entre les deux. Cette boucle de while se poursuivra jusqu'à et à moins que vous ne retourniez pas dans ce code de pizza. Vous devez donc revenir pour monter sur cette boucle pour que vous puissiez voir ce que je fais. Vous pouvez voir ici que j' appelle la fonction de sortie. Comme je vous l'ai dit dans. Depuis que nous le sommes, nous avons fini de rendre le socket serveur non bloquant et nous appelons la fonction de sortie. C'est efficace, c'est une demande du client qui ne le sont pas, Elle n'attendra pas. Il va simplement l'allumer à bord. Il acceptera la connexion, elle retournera avec succès. Si ce n'est pas le cas, la connexion n'est pas là, aucune connexion de plan n'est disponible. Il reviendra immédiatement et il vous donnera l' erreur de ce métal. Vous pouvez donc voir que la fonction de sortie est, nous appelons, nous analysons le socket serveur, masse insignifiante par socket. Et ces choses. C'est ça, c'est ce qu'en fait, et cela vous donne cependant. Cela vous donne le descripteur client, en fait le descripteur de fichier. Il s'agit du descripteur de socket client Dr. Vous êtes en train de vérifier cela moins un. Alors cela vous donnera S moins un. En fait. Vous allez vérifier différents types d'erreurs. Indique lorsqu'il ne s'agit pas de connexion client, c'est-à-dire lorsque vous ne lancez pas le client. Évidemment, si vous appelez la fonction de sortie et que vous ne l'êtes pas. Je lance cette ligne. Donc évidemment comment il acceptera la connexion, il n'y a pas de client présent et cela aussi, puisque nous faisons le socket n'est pas bloquant. Il n'attendra pas. Il reviendra immédiatement. Donc, dans ce cas, ce sera moins un. Ce sera donc moins un lorsque vous n'êtes pas verrouillé lors du lancement du client et que vous appelez toujours la fonction de sortie retournera immédiatement. Par conséquent, cette condition sera satisfaisante, c' est-à-dire l'appareil éteint avec moins un. Et dans ce cas, vous serez à la maison différents chèques différents. Vous le verrez donc modifier le numéro, qui est là en fait, il est désactivé, il bloquerait les types. Cette erreur se produira en fait, cette erreur signifie que vous étiez censé bloquer le socket parce qu'il n' y a pas de connexion client. Et donc dans ce cas l'exception aurait dû en fait, mais les États-Unis, depuis que vous l'avez fait, vous aviez fait ce socket ne sont pas bloquants. Nous avons été retournés immédiatement sans attendre la demande du client. Et par conséquent, cela vous donnera cette erreur disant que le trouble est présent et que vous pouvez donc simplement dans ce cas, donc après un certain temps, cela signifie que vous pouvez appeler après un certain temps la même fonction que celle de la sortie. Puisqu'à cette époque, il n'y avait pas de montée connectée Newton et le client de lancement et il n'y avait donc pas de plan. Donc, comme c'est eta, vous pouvez attendre un certain temps et appeler la fonction de sortie. Vous pouvez donc voir ce message d'affichage à venir. n'y a pas de connexion en attente et Blackboard veille pendant deux secondes. Donc je fais pour dormir autant de temps en fait deux secondes, alors que va-t-il se passer ? Laissez-moi dormir, c'est fini. Ce qui se passera évidemment, encore une fois, il va itérer, contrôle de bord ira ici, en fait, il appellera la fonction de sortie et il le fera à nouveau. Si c'est le cas, si vous l' avez fait jusqu'à ce moment-là, si vous avez lancé une ligne, qui se connecte sur le même numéro, dans ce cas, elle acceptera la connexion et ce vent reviendra avec succès . Et vous ne l'obtiendrez pas si la condition est satisfaite. Si vous avez une ligne non menaçante, ce descripteur de socket ne sera pas moins un. Il s'agit d'une valeur non nulle et cela sera donc satisfait. Et ensuite, vous allez envoyer ce message sur ce socket client lui-même à partir de la connexion au serveur. Par conséquent, vous écrivez un message à partir de celui-ci sur le socket client. Vous envoyez ce message, donc ce sable que vous appelez depuis le programme serveur, du côté serveur sur le socket client. Par conséquent, vous donnez le descripteur de socket du socket client. Et vous passez ce message MSG, que vous donnez est test, hé, bonjour. Ce serveur enverra un message au client, que vous pouvez voir apparaître sur la console de ligne. C'est ainsi qu'il se comporte en sectionnement. Je vais vous montrer que vous avez acheté ce que nous essayons de faire ici. clair que nous allons maintenant compiler le programme et l'exécuter. Donc maintenant, en revenant à Domino, ayant le programme, laissez-moi juste réinitialiser pour que vous compreniez plus clairement que nous avons. Laissez-moi donc retirer cet élément et laissez-moi relancer le programme. Puisque nous devons compiler ce programme et que ce programme est écrit en langage C, je vais donc utiliser l'outil de compilation GCC, qui sert à compiler le programme en langage C dans le cas du système d'exploitation Linux, et donc je donne DCC. Il sera donc installé par défaut dans votre système d'exploitation Linux. Il est donc simple donner cette commande et vous verrez qu'elle a été créée. Maintenant, vous pouvez simplement faire un point. Dans ce cas, lorsque vous l' exécutez vous-même, nous terminerons le serveur. Que fait le serveur puisque vous ne lancez que le serveur et que vous ne lancez plus le client après cela. Dans ce cas, il retournera en fait l' appel de la fonction de manuel. Il reviendra immédiatement. Il va dormir pendant deux secondes. Et encore une fois, il appellera à nouveau la fonction de sortie, elle retournera immédiatement en veille ou deux secondes. Cela continuera donc à se produire sur l'ADN et encore jusqu'à ce que vous ne lanciez pas votre client. Une fois que vous lancez une ligne sombre, le solveur sera simplement étendu si le connecteur est réussi et enverra au moins un message d'un serveur à l'autre. Voyons donc, on va courir comme un point de départ. Vous pouvez donc voir ici qu'il n' y a pas de connexion en attente. Il a dormi pendant deux secondes. Une fois encore. Après deux secondes de glissement, c'est reparti. Il appelle la fonction. Une fois encore. n'y a pas de connexions en attente, donc il est revenu immédiatement et a dormi à nouveau Porto quelques secondes, c'est une continuation de vous dire, lancez votre temps. Alors, laissez-moi ou à long terme neuf, je vais ouvrir un nouveau terminal comme celui-ci. Vous pouvez donc voir ici que ce terminal est destiné au serveur. Dominant, dominant. Je vais utiliser pour lancer l'heure. Alors comment, depuis le serveur En communication que nous faisons sur la même machine hôte en fait. Donc, je m'attarde sur cette machine de cours et vends la nouvelle dominante de cette manière. Et je le ferai, je ferai pour me connecter au serveur que je dois, je fais Telnet localhost en fait 0 distance ce client serveur est sur la même machine locale. Je donne un hôte local, c' est-à-dire une adresse IP à n'importe quel 0 ou t car le serveur est lié à ce numéro de port que nous avons vu dans notre programme. Donc une fois dû, vous pouvez voir ici une fois que j'ai fait dix minutes ce qui s'est passé ? Il est centimètre, il est connecté à l'hôte local. Et ce message a reçu, salut le serveur Thrombus. Voyons donc ce qui s'est passé sur le solveur. Encore une fois, voyez dans les mois et j'ai reçu un message. Une fois que vous lancez ce client, le client envoie une demande de vous avez vu en faire dix. Laissez-le dans ce cas, que s' est-il passé ? Bennett a simplement accepté la connexion, elle a été couronnée de succès. Et donc il va dire qu' faut se connecter et il rapportera l'objet, quel message c'est génial, Nous avons vu à quel point nous écrivons du solveur sur la prise temporelle que Dieu a affichée ici. Ensuite, nous ajoutons, nous nous sommes déconnectés de cette connexion la plus proche l' auteur et des bits d'hôte que nous avons vus, ce que nous faisons dans notre programme. C'est donc ce qui arrive, tout ne se remet pas, ça attend en fait puisque nous l'avions mis dans la boucle infinie. Si nous, encore une fois intellectuellement, nous aimons cela. Et laissez-moi diriger celui-ci. Que va-t-il se passer ? Vous pouvez voir encore une fois que c'est le cas, il faut qu'il y ait un lien. Il leur dira : Hé, bonjour, donc c'est ce que c'était. Cela arrive en fait. La fabrication de la prise n'est pas bloquante. Vous pouvez voir comment il se comporte sexuellement. Maintenant, revenons à oui, oui. C'est ainsi que nous y sommes parvenus. Je pense que le programme, en plus de l'exécuter, rendre le socket n'est pas bloquant. Communication avec le serveur client. C'est ainsi que vous ne pouvez pas multiplier les lignes. Et puis du côté, nous lui enverrons simplement un message et aucun client n'est lancé, il reviendra tout simplement immédiatement et il vous donnera le message. Il va dormir ou deux secondes à nouveau, il continuera à appeler la fonction de sortie. À cette minute, une petite dune s'est connectée au ghetto. C'est ainsi que ça se passe. C'est le comportement et nous en avons terminé avec cette session complète. En fait, nous avons vu maintenant écrire le programme, vous avez vu quel est le but du socket non bloquant, et nous avons écrit le programme et exécuté. C'est. Je ne voulais pas dire que j'en ai fini pour l'instant. Merci, mes amis. Merci beaucoup. 27. Socket Session16 Socket ; Programmation de Socket: Bonjour, Bienvenue à cette dernière session du cours que cette application de programmation de socket. Ici, nous verrons un parallèle. La programmation des sockets est utilisée ainsi que nous verrons les applications réelles où toute la programmation des sockets est utilisée. Voyons voir, étape par étape. Alors, commençons par parler rapidement de la prise que nous avons vue jusqu'à présent. Nous connaissons cette prise, c'est une communication inter-processus au sein du même sabots ou des sabots différents de ma chaîne. Ainsi, le client peut être présent la même machine hôte qui communiquera pendant l'audit de communication du socket peut être présent sur une machine hôte différente. Dans le diagramme, révisez rapidement à ce sujet. Nous avons donc vu qu' il existe un serveur et qu'il s'agit d'un client. Comprend l' identité de l'argent pour la récupération doit avoir adresse IP associée et le numéro de port, qui doit avoir son adresse IP et numéro de port afin que le client, si vous devez faire la communication avec la cellule, travailler en synchronisation avec la même adresse IP et le numéro de port sur lequel le serveur est en cours d'exécution. La communication. Nous avons vu ce phénomène phénoménal et ils communiquent donc une déficience, des baisses légères. Ils communiquent sur Internet. A commencé un par un. La demande sera envoyée et nous serons présents dans la file d'attente en fonction du programme, ce que vous avez configuré. Si vous avez de l'insentiment, devrait être de décliner et d'agir dans la file d'attente, alors cela se produira. Dans ce cas, si vous ne souhaitez pas qu'une seule ligne communique avec le serveur, vous ne souhaitez pas qu'un autre type de connexion soit dans la file d'attente. Pour que nous ayons vu des fonctions différentes, différentes sont donc trottoir ou client, nous avons vu qu'il ne s' agit que d'une révision. Maintenant, parcourez les zones où toute la programmation des sockets est utilisée. C'est un par un que j'ai décrit, ce qui permet de mettre en œuvre l'analyse en temps réel. Quelle est donc cette analyse en temps réel ? Vous savez que l'analyse en temps réel signifie une analyse du temps ADN, mais l'analyse sera effectuée. Par exemple, si vous allez à différent, je dirais flipkart.com, amazing.com. Vous pouvez voir que si vous avez deux parties, si vous avez un téléphone portable, dans ce cas, vous pouvez voir que le site d' achat intermédiaire vous donnera plus de protection de l'écran hors écran tout en couvrant tout cela parce que vous êtes en train de couper. Vous êtes à la recherche du téléphone portable. Ils sont donc assez intelligents pour afficher ces choses. Cela signifie que plus tard, vous achèterez le petit jardin mobilisé comme vous l'êtes en poursuivant le mobile. C'est tout ce qui concerne l'analyse d'analyse en temps réel également des exemples. Si c'est le cas, supposons que vous cherchiez une robe dans n'importe quel site de shopping. Visitez différents Instagram ou Facebook, vous pouvez voir que vous obtiendrez l'âge adulte de s'habiller lui-même. Pour que plus tard vous puissiez parcourir ce site et faire des achats. Il s'agit donc de l'analyse en temps réel, de l'analyse. autres termes, quelle que soit votre recherche dans votre navigateur, les données sont stockées et elles seront placées devant vous chaque fois que vous êtes sur. L'utilisateur s'occupera de cette chose particulière qui arrive ou se déplacera. C'est juste un type idéal. C'est ce que l'analyse en temps réel. Ainsi, la programmation de socket est également utilisée pour la messagerie instantanée par la logique domino et comprend l'envoi du message, message instantané à la socket. La communication avec notre programmation y est utilisée. Ensuite, pour le streaming binaire, ainsi que pour la collaboration de documents. Ainsi, à toutes ces fins, la programmation des sockets est utilisée dans ces zones. Ensuite, il est également utilisé pour créer le serveur. Les investisseurs comme les serveurs Web, les serveurs de messagerie, les serveurs FTP et d'autres serveurs. Nous avions donc vu qu'il y aura un serveur et un client où toute la programmation de socket peut être utilisée pour créer le serveur, comme les serveurs Web, serveurs de messagerie, les serveurs FTP sont trans. Ces serveurs FTP doivent être associés au transport de fichiers. Le principal que vous pouvez, vous pouvez comprendre ce que c'est pour le, ce qui concerne l'envoi des moyens au serveur pour cela. Toute la programmation des sockets est utilisée. Et si vous parlez du côté client, alors les navigateurs qui peuvent être Firefox ou peuvent être développés, c' est-à-dire la programmation de socket utilisée. Ce sont les zones où tous les sockets programment ou sont utilisés d'autres zones. La plupart des protocoles de niveau application croyants. Vous avez vu File Transfer Protocol, SMTP, POP3, Big News OK, socket pour établir la connexion entre le client et le serveur. Ensuite, pour l'échange de données, vous savez que FTP est utilisé pour transférer le fichier du serveur vers le client sorte que toute la programmation du socket soit utilisée pour envoyer le courrier, pour en envoyant des choses différentes, en fait tous ces SMTP que des messages sur la poterie. Toutes ces choses sont, elles vont utiliser la prise. Ce sont les applications qui vous feront bien que socket dans la communication se produira entre le serveur et le client. C'est toutes les idées où toute la programmation des sockets est utilisée, ce FTP, SMTP, et j'espère que ce sont les protocoles. Maintenant, une autre chose en fait où tous les socrates utilisaient, je suis allé sur le socket deux, donc nous les avons vus dans les API de socket, tout cela. Il permet au programmeur de créer des applications avancées de capacité Internet, intranet et autres applications réseau intranet et autres applications réseau pour transmettre les données de l'application sur le fil indépendamment du protocole réseau étant utilisé, toute la programmation des sockets est utilisée. Ensuite. Si vous parlez d'applications en temps réel, agit de l' application en temps réel sur laquelle Socrates, nous avons vu ce programme. Pour cela, nous avons réalisé l'application de chat en temps réel entre le serveur et le client. Nous avons vu cette communication TCP et pour Windows et Linux lui-même. Nous avons fait le programme également exécuté comme la boîte serveur au client, client parle au serveur. C'est la programmation de socket utilisée, c' est-à-dire une application de chat en temps réel. Ensuite, une autre application en temps réel où le socket est utilisé. Nous avons vu le serveur HTTP Apache communiquer avec le navigateur client. Donc ici, nous avons également programmé pour cela, mais ce n'est pas le cas. Nous avons vu que chaque fois que l'utilisateur donne un lien côté client, le navigateur peut être Mozilla, peut être développé Internet Explorer sur n'importe quel autre navigateur. Chaque fois que l'utilisateur donne une URL , ce navigateur lui-même est un client. La demande sera donc envoyée au serveur HTTP Apache. Et ce sentiment client cependant, nous allons communiquer avec le serveur en ce qui concerne l' envoi du message, en termes de format d'en-tête. Nous l'avons vu dans la compréhension cette session, car j' ai déjà examiné comment le client enverrait-il le message à la barre latérale au format d'en-tête vers le haut et comment le corps réagit en envoyant l'en-tête et le corps jusqu'aux pouces, insuline sur le côté ou réponse d'incitation Web triste au client et la page est chargée, quelle que soit l'URL donnée par l'utilisateur sur le navigateur qui paie sera chargée. Nous avons donc déjà programmé cette formule, ainsi que Paulina. Nous avons donc vu cette application réelle. Cette programmation de prise est utilisée dans une autre application, l'application en temps réel est pour application de réservation de taxi sur la programmation de prise est utilisée. Ce sont cependant les domaines dans lesquels toute la programmation des sockets est utilisée. Je l'ai fait pour cette dernière session de ce cours. Nous avons maintenant terminé le cours complet. Merci. Merci beaucoup. 28. SocketSession17 SourceCode: J'ai le code source de tous les programmes de socket, que j'ai abordés dans tout ce cours. Vous pouvez donc le référer après avoir compris le tableau que j'ai expliqué lors de différentes sessions.