Cours programmation réseau - UDP01 - Introduction et premiers pas
Salut à tous,
changeons un peu d'air afin de nous intéresser à l'utilisation d'UDP.
Ce premier chapitre introduit un peu de vocabulaire, résume les garanties d'UDP et ce qu'on peut attendre en comparaison de TCP et pourquoi il est utilisé.
Ensuite notre premier socket UDP et programme est mis en place avant de finir sur une explication des phénomènes de pertes et duplications inhérents à l'utilisation d'UDP et une première façon de les limiter.
:fleche: http://bousk.developpez.com/cours/re...-premiers-pas/
Cours programmation réseau - UDP02 - Gérer les pertes et duplications d'identifiants
Salut à tous,
avant d'attaquer l'implémentation du protocole en soit, voici un chapitre présentant comment détecter qu'un identifiant est perdu ou dupliqué ainsi que comment gérer sa réinitialisation après avoir atteint la valeur maximale.
:fleche: http://bousk.developpez.com/cours/re...-identifiants/
Cours programmation réseau - UDP03 - S'assurer du bon fonctionnement de son code
Salut à tous,
vue la complexité d'un tel développement, il convient de tester que son code se comporte comme attendu.
Ce très court chapitre introduit donc une solution de tests, unitaires et autres, afin de vous initier à cette pratique.
Ces tests seront étoffés au fur et à mesure des articles et de l'élaborration du moteur réseau.
Je vous présente également le dépôt contenant les sources du moteur créé dans le cadre de l'écriture de ce cours et vous sensibilise à l'utilisation d'un tel outil.
:fleche: http://bousk.developpez.com/cours/re...n-place-tests/
Cours programmation réseau - UDP04 - Créer son protocole par-dessus UDP
Salut à tous,
une année entière s'est écoulée depuis le dernier chapitre 8O
L'écriture n'a pas été arrêtée mais fut très ralentie pendant 2018 par une surcharge professionnelle et personnelle.
2019 sera également chargée mais quelques chapitres devraient voir le jour.
Il est temps d'appréhender la création de son protocol par-dessus UDP.
Ce chapitre est l'approfondissement du chapitre 2 qui introduit la gestion des pertes et duplicatas de datagrammes.
:fleche: https://bousk.developpez.com/cours/r...eer-protocole/
Cours programmation réseau - UDP05 - Découper et réunifier des paquets & protocole ordonné non fiable
Salut à tous,
maintenant que nous avons vu les bases de la création d'un protocole, nous allons enfin itérer sur celle-ci.
Dans ce nouveau chapitre, apprenez comment découper à l'envoi et réunifier à la réception des messages trop gros pour être envoyés par un paquet seul.
Également comment optimiser l'envoi en envoyant plusieurs paquets par datagramme si ceux-ci sont suffisament petits.
Enfin, le chapitre se conclue par la création d'un protocole ordonné non fiable en utilisant UDP.
:fleche: https://bousk.developpez.com/cours/r...ifier-paquets/
Cours programmation réseau - UDP06 - Envoi de paquets ordonné fiable
Salut à tous,
après la création d'un protocole ordonné non fiable, apprenez maintenant à créer un protocole ordonné et fiable.
Ce nouveau chapitre est très similaire au précédent et présentera également une optimisation afin de ne pas perdre le contrôle sur la réception des paquets et la mémoire allouée à cette fin.
:fleche: https://bousk.developpez.com/cours/r...rdonne-fiable/
Cours programmation réseau - UDP07 - Combiner tous les protocoles : les canaux de communication
Salut à tous,
nous avons créé dans les chapitres précédents un protocole ordonné non fiable et un protocole ordonné et fiable, mais seul l'ordonné non fiable était utilisé dans le moteur.
Ce nouveau chapitre présente comment profiter de 2 protocoles ou plus dans votre application via l'introduction de canaux de communication utilisant l'unique socket et connexion dont nous disposons.
:fleche: https://bousk.developpez.com/cours/r...er-protocoles/
Cours de programmation réseau - Bases de la sérialisation
Salut à tous,
nous nous écartons légèrement du réseau à proprement parler pour parler de sérialisation.
Bien qu'essentielle dans l'envoi de données, ces chapitres peuvent également être utilisés indépendamment (système de sauvegarde, ...).
Nous commençons par les bases avec une sérialisation simple.
Bonne lecture !
:fleche: https://bousk.developpez.com/cours/serialisation-bases/
Cours de programmation réseau - Sérialisation de bits
Salut à tous,
après les bases de la sérialisation, passons à la vitesse supérieure et voyons comment optimiser cette sérialisation, en minimisant la taille du tampon nécessaire.
Dans ce chapitre, nous voyons comment sérialiser des valeurs sur des bits et non uniquement sur des octets (une valeur entière sur 7 ou 28 bits par exemple).
Mais aussi comment rendre ceci plus aisé en considérant les valeurs possibles plutôt que le nombre de bits nécessaire à les représenter.
Bonne lecture !
:fleche: https://bousk.developpez.com/cours/serialisation-bits/
Cours de programmation réseau - Sérialisation avancée
Salut à tous,
troisième chapitre dédié à la sérialisation.
Dans celui-ci nous mettons en places un type optimisé pour transférer des entiers sur intervalle, des nombres à virgule fixe pour remplacer les nombres à virgule flottante et des énumérations.
Ce chapitre utilise énormément la métaprogrammation pour y parvenir et nécessite le passage au C++17.
Bonne lecture !
:fleche: https://bousk.developpez.com/cours/s...ation-avancee/
Cours de programmation réseau - UDP08 - Gestion de connexions
Salut à tous,
nous revenons à notre protocole UDP en ajoutant une couche importante pour toute application : la gestion de connexions.
Dans ce chapitre, vous verrez comment mettre en place un système de connexions qui permet de savoir quand une machine essaye de nous joindre, d'accepter ou refuser cette connexion puis de terminer la connexion en notifiant les intéressées à chaque étape.
Un timeout fait également son apparition pour gérer la perte de connexion ou l'absence de réponse à une demande de connexion, afin de ne pas bloquer le moteur et l'application dans un état non souhaité.
Bonne lecture !
:fleche: https://bousk.developpez.com/cours/r...on-connexions/