Cours programmation réseau en C++
Déboguer une application réseau, un tutoriel de Bousk
Le 2021-08-24 15:32:57, par Bousk, Rédacteur/Modérateur
Salut à tous,
de retour avec un nouvel article... annuel (time flies )
Cette fois nous étudions comment débuguer une application en réseau, en ajoutant des mécanismes de pause et reprise de la connexion - tant que faire se peut.
Au lieu de déclencher une déconnexion, le moteur réseau enverra un message de pause. Par exemple quand un des process rencontre un breakpoint.
L'application est ensuite libre d'y réagir, typiquement en mettant en pause la simulation jusqu'à la reprise de la connexion,
Si la reprise est impossible ou celle-ci tarde, vous pouvez kicker le client distant.
Bonne lecture !
https://bousk.developpez.com/cours/r...cation-reseau/
de retour avec un nouvel article... annuel (time flies
Cette fois nous étudions comment débuguer une application en réseau, en ajoutant des mécanismes de pause et reprise de la connexion - tant que faire se peut.
Au lieu de déclencher une déconnexion, le moteur réseau enverra un message de pause. Par exemple quand un des process rencontre un breakpoint.
L'application est ensuite libre d'y réagir, typiquement en mettant en pause la simulation jusqu'à la reprise de la connexion,
Si la reprise est impossible ou celle-ci tarde, vous pouvez kicker le client distant.
Bonne lecture !
-
BouskRédacteur/ModérateurNon UDP n'est pas une solution pour scaler le miniserveur.
Pour scaler il faut changer le traitement des connexions et échanges de données (avec kqueue, epoll, .. mentionnés vers le début du thread).
UDP devrait être utilisé pour du gameplay (temps réel) où le nombre de connexions devrait déjà être limité par les règles gameplay ou les performances nécessaires.
Pour les lecteurs, je suis désolé du manque de contenus : le temps me manque depuis 3 ans. le 24/04/2023 à 15:51 -
bacelarExpert éminent séniorIl y a bien d'autres axes d'évolution que le choix des implémentations de protocole de niveau Transport de l'OSI fournies dans les OS "main stream".
- configuration de ces implémentations pour les adapter aux besoins, et pas qu'au niveau 4 de l'OSI (Transport) mais à n'importe quel niveau.
- implémentation customisé d'un composant de la stack réseau, voire de la stack complète via des drivers, qu'ils soient dans un firmware matériel, un driver de périphérique, un driver layer du Kernel, ou des parties "User" de la pile réseau
- Design de protocoles spécifiques utilisant, ou n'utilisant pas des composants de la stack réseau de l'OS,
- Mise en place de hardwares dédiés comme des répartiteurs de charge
- etc...le 26/04/2023 à 16:24 -
BouskRédacteur/ModérateurM est le paramètre template et ceci est un CRTP.le 23/05/2023 à 14:50
-
panthere noireMembre habituéMerci pour l'information et ton partage, je suis intéresser donc je m'abonnele 23/09/2021 à 9:06
-
philodu83Nouveau Candidat au ClubBonjour,
Dans ton cour sur le mini serveur en TCP, tu dis "Si le serveur devient plus gros et doit accueillir une population plus importante, l'architecture mise en place dans ce chapitre ne sera pas adaptée."
J'imagine que le cour sur l'UDP est une solution pour répondre à ce besoin ?
Ou même si j'arrive au bout du cour sur l'UDP, je serais toujours limité à un nombre de connexion ?
Merci en tout cas pour ce cour qui permet de démystifier un peut le sujet ^^le 21/04/2023 à 16:59 -
ArnaudNRosesNouveau Candidat au ClubDans le tutoriel à cette page : https://bousk.developpez.com/cours/reseau-c++/TCP/07-architecture-client/
il y a ce code mais je ne comprends pas cette ligne :Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20class Message { public: template<class M> bool is() const { return mType == M::StaticType; }// ICI : COMMENT SE FAIT LA DEDUCTION du type M ??????? Je comprends pas vraiment template<class M> const M* as() const { return static_cast<const M*>(this); } protected: enum class Type { Connection, Disconnection, UserData, }; Message(Type type) : mType(type) {} private: Type mType; };
Quelqu'un peut-il m'aider ? Merci beaucoup d'avance !!!le 22/05/2023 à 0:58