Developpez.com - Rubrique C++

Le Club des Développeurs et IT Pro

Cours programmation réseau en C++ : sérialisation de bits

Un tutoriel de Bousk

Le 2019-10-24 03:53:59, par Bousk, Rédacteur/Modérateur
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 !
https://bousk.developpez.com/cours/s...lisation-bits/
  Discussion forum
53 commentaires
  • boureb
    Candidat au Club
    Bonjour,
    merci pour ce cour bien utile pour poser les bases.

    Juste un petit problème rencontré lors de la compilation avec Visual Studio 2019 sur Windows 10.

    Le projet TP01 est ok mais à partir du TP02 il faut remplacer:

    Code :
    #if _WIN32_WINNT == _WIN32_WINNT_WINBLUE
    par

    Code :
    #if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
  • Jordi123
    Candidat au Club
    Super cours, merci pour le partage.
  • Bousk
    Rédacteur/Modérateur
    Hello,
    je viens de revoir toutes les archives des TP TCP et la compilation devrait être correcte sur vs2019. #if _WIN32_WINNT == _WIN32_WINNT_WINBLUE a normalement été remplacé de partout par #if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE. N'hésitez pas à me faire savoir s'il reste une coquille quelque part.
  • Bousk
    Rédacteur/Modérateur
    Non 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 .
  • bacelar
    Expert éminent sénior
    Il 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...
  • Bousk
    Rédacteur/Modérateur
    M est le paramètre template et ceci est un CRTP.
  • Cefer
    Candidat au Club
    Ah merci, j'étais justement en train de le faire, et j'avais cette erreur.
  • Bousk
    Rédacteur/Modérateur
    Bien vu, j'avais fixé le TP01 mais n'ai pas pensé aux suivants...
    J'essayerai de repasser dessus.
  • Bandanas
    Futur Membre du Club
    Super, merci !
  • LuffyShop
    Nouveau Candidat au Club
    excellent cours, il est très intéressant