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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Cours programmation réseau en C++ : gérer des connexions entre machines en UDP
Un tutoriel de Bousk

Le , par Bousk

0PARTAGES

5  0 
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/

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 21/03/2020 à 23:13
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.
1  0 
Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 24/04/2023 à 15:51
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 .
1  0 
Avatar de bacelar
Expert éminent sénior https://www.developpez.com
Le 26/04/2023 à 16:24
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...
1  0 
Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 23/05/2023 à 14:50
M est le paramètre template et ceci est un CRTP.
1  0 
Avatar de Bandanas
Futur Membre du Club https://www.developpez.com
Le 22/04/2020 à 2:30
Super, merci !
0  0 
Avatar de LuffyShop
Nouveau Candidat au Club https://www.developpez.com
Le 05/09/2020 à 19:42
excellent cours, il est très intéressant
0  0 
Avatar de Gouyon
Membre expérimenté https://www.developpez.com
Le 17/12/2020 à 13:57
Bonjour

J'ai une incompréhension au niveau de l'UDP. Je pensais que lorsque l'on envoyait de données sur un port elle pouvaient être lues par tous ceux qui écoutent ce port et il semble que ce n'est pas du tout le cas.
Je pose cette question car on m'a fournis un logiciel sensé simuler un instrument de mesure qui envoie ses données en UDP
Dans ce logiciel je rentre une adresse IP d'émission et un port d'émission mais pas de destinataire.
Quand j'utilise un logiciel d'analyse de réseau je me trouve que l'adresse de destination et le port de destination sont identiques à l'adresse de source et au port de source.
Du coup je n'arrive pas à lire les données à partir du programme que je développe et qui est censé récupérer les information de cet instrument.
Y a t'il moyen de configurer le socket de réception de telle manière qu'il puisse récupérer ce message?
0  0 
Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 17/12/2020 à 14:39
UDP envoit vers un couple ip/port.
Il existe des IPs spécifiques, localhost et broadcast par exemple, pour s'envoyer à soi-même ou à tout le monde (dans le réseau/routeur local).
L'IP que tu donnes à ton programme est probablement l'IP destination, il n'y a (quasi) aucun intérêt à fournir l'IP source.
Ou le programme émet peut-être en broadcast sur le port que tu choisis.
Mais ça c'est sensé se trouver dans la doc du programme.
0  0 
Avatar de Gouyon
Membre expérimenté https://www.developpez.com
Le 17/12/2020 à 15:53
Merci pour cette réponse rapide.
Je viens d'essayer avec l'IP Broadcast et ça fonctionne très bien
Il serait bien de mettre un petit chapitre à ce sujet dans ton excellent cours

Citation Envoyé par Bousk Voir le message
Mais ça c'est sensé se trouver dans la doc du programme.
Comment dire "oui dans un monde parfait"
0  0 
Avatar de Serre-tete
Nouveau Candidat au Club https://www.developpez.com
Le 13/01/2021 à 21:39
Merci pour le partage, c'est énorme !
0  0