IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Cours sur la programmation réseau [Tutoriel]


Sujet :

C++

  1. #21
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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.

    http://bousk.developpez.com/cours/re...-premiers-pas/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  2. #22
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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.

    http://bousk.developpez.com/cours/re...-identifiants/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #23
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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.

    http://bousk.developpez.com/cours/re...n-place-tests/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #24
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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
    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.

    https://bousk.developpez.com/cours/r...eer-protocole/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #25
    Membre à l'essai
    Homme Profil pro
    Data Scientist
    Inscrit en
    Avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Scientist

    Informations forums :
    Inscription : Avril 2018
    Messages : 8
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Je suis complètement largué dans le TD01, comment est-on supposé lancer un serveur ? (On a une fonction de connexion, mais où est celle de mise en écoute ?)

    Edit : Je viens de regarder les fichiers sources de la correction et ...
    J'ai l'impression d'avoir raté un chapitre, l'exercice commence par "Lancez ou compilez le TD 01. Un serveur se lancera sur le port de votre choix et créez un client capable de se connecter à celui-ci.". Je n'ai pas trouvé de lien vers un code source de base pour ce TD, juste le code source de la solution qui comprend aussi un exemple de client. Qu'ai-je manqué ?

  6. #26
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Tu as une version compilée avec VS2015 dans Samples/Win10, il faut les redistributables VS2015 pour la lancer.
    Les codes sources sont accessibles via le lien "Télécharger les codes sources du cours" tout en bas de l'article. Un lien a été ajouté plus haut pour plus de clarté.

    Sinon tu peux la recompiler depuis les solutions, VS2013 & VS2015 sont proposées. Elles sont upgradables vers VS2017 sans soucis.
    Il y a un problème avec les versions de Win10 plus récentes, il faut changer les tests #if _WIN32_WINNT == _WIN32_WINNT_WINBLUE en #if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE dams Main.cpp et Clients_Sample/Sockets.hpp
    L'article a été mis à jour avec ces corrections.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #27
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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.

    https://bousk.developpez.com/cours/r...ifier-paquets/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #28
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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.

    https://bousk.developpez.com/cours/r...rdonne-fiable/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  9. #29
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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.

    https://bousk.developpez.com/cours/r...er-protocoles/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #30
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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 !
    https://bousk.developpez.com/cours/serialisation-bases/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  11. #31
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 153
    Points : 168
    Points
    168
    Par défaut
    Bonjour

    La sérialisation comme indiquée ne fonctionnera pas entre machine avec des architecture "little indian" / "big indian" différentes.
    A préciser peut-être ?
    Jérémie

  12. #32
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    As-tu lu l'article entier ? Pourquoi elle ne fonctionnerait pas ?
    La première moitié de l'article parle et montre les problèmes d'endianness et indique comment les résoudre via des conversions.
    Les implémentations suivantes utilisent ces conversions pour contrer ce problème.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  13. #33
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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 !
    https://bousk.developpez.com/cours/serialisation-bits/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  14. #34
    Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Novembre 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Novembre 2019
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Au top
    Super cours, merci pour le partage.

  15. #35
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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 !
    https://bousk.developpez.com/cours/s...ation-avancee/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  16. #36
    Candidat au Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Février 2020
    Messages : 1
    Points : 4
    Points
    4
    Par défaut PB compilation VS 2019
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    #if _WIN32_WINNT == _WIN32_WINNT_WINBLUE
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE

  17. #37
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ah merci, j'étais justement en train de le faire, et j'avais cette erreur.

  18. #38
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bien vu, j'avais fixé le TP01 mais n'ai pas pensé aux suivants...
    J'essayerai de repasser dessus.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  19. #39
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut 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 !
    https://bousk.developpez.com/cours/r...on-connexions/
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  20. #40
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    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.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2012, 10h24
  2. Cours sur le programme DEBUG de MS-DOS
    Par Med_be dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 24/02/2011, 19h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo