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 :

Socket et protocole UDP, ne lire que la dernière donnée reçue


Sujet :

C++

  1. #41
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    au démarrage du programme, j'ai [I]dataLen = 0, donc aucune donnée à lire. C'est d'ailleurs le premier élément que je vérifie. S'il est différent de 0 je lis le contenu de [I]data.

    D'ailleurs je me suis trompé dans le code posté. Ce n'est pas
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data[id].id = recvData.id;

  2. #42
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Auteur, dans ma tête, l'index de lecture c'était "n" et pas "n-1"

    Citation Envoyé par jblecanard Voir le message
    Là tu proposes le lock-free ring buffer, c'est une bonne idée mais c'est assez compliqué à coder et ça nécessite d'avoir std::atomic_flag.
    en FIFO j'imagine que ça doit être plus délicat, mais là c'est du LIFO... Est-ce que ça change quelque chose ?

    merci pour le lien

  3. #43
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par minnesota Voir le message
    Auteur, dans ma tête, l'index de lecture c'était "n" et pas "n-1"
    ça ne peut-être que l'index n-1 car l'index n correspond à la donnée courante celle qui est en train d'être mise à jour.

  4. #44
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Oui, ça dépend de l'organisation interne. Dans ma vision des choses, la dernière donnée ne pouvait être sur un plan logique à "n-1", sinon c'est pas la dernière, en quelque sorte, ça ne pourrait pas être le sommet de la pile, même si là c'est circulaire, c'est comme si je mettais une brique pleine, et au dessus, une brique vide.

    Moi je voyais la chose comme : je mets d'abord à jour ma donnée, ensuite seulement, je mets à jour mon index de lecture qui pointera donc sur la dernière donnée de lecture disponible au moment où je ferrai mon appel de lecture.

    Mais bon, c'est juste une question de point de vue... et du coup peut-être aussi un détail...

    Après, peut-être qu'on pourrait arrivée à quelque chose de plus élégant sans se trimbaler un index avec la SL ou Boost, mais comme je programme très très peu, à chaque fois il faut que je replonge dans la doc... et ouais... ça semble pas être comme le vélo... donc je me contente de seulement mettre en lumière la possibilité...

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Protocole UDP et Socket
    Par yazidi_marwen dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 10/06/2012, 15h19
  2. Socket et protocole IRC
    Par EpOnYmE187 dans le forum WinDev
    Réponses: 8
    Dernier message: 10/02/2006, 14h54
  3. Ne lire que à partir du n ième caractère
    Par dj-julio dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2006, 13h21
  4. Réponses: 10
    Dernier message: 10/01/2006, 09h12
  5. raw socket et protocole TCP/IP
    Par robertmouac dans le forum Développement
    Réponses: 3
    Dernier message: 09/03/2005, 23h09

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