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

Algorithmes et structures de données Discussion :

Cree un buffer circulaire


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Cree un buffer circulaire
    Bonjour,
    Voila je voudrai mettre un place un system de buffer circulaire entre un serveur et des clients reseau (je dois des coder les deux), seulement je n'ai pas touver grand chose sur le fonctionnement d'un tel system de buffer.
    Enfait ma question est simple comment cree un system de buffer circulaire ?

  2. #2
    Membre habitué Avatar de larnicebafteur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Points : 131
    Points
    131
    Par défaut
    Tout d'abord, il faut choisir une taille pour le buffer.
    Ensuite, c'est un peu comme un tableau, mais une fois qu'on arrive au dernier element, on repart à partir du premier.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    La principale difficulté est d'éviter le chevauchement.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Si j' ai bien compris...
    Sur le principe de base c'est ok. Seulement, prenons le cas d'un buffer d'une taille 32, quand j'arrive au 32eme element de mon buffer, je le remplie a nouveau et reprend la lecture au debut c'est ca ? ou je me trompe ?

  5. #5
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    En fait pour un tableau de taille BUF, tu l'utilises comme si c t un tableau infini, sauf que tu mets tous tes indices modulo BUF...

    Si i est ton indice, tu l'incrémentes comme ça:
    i = (i + 1) % BUF...

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Ok, mais a quel moment je recharge le buffer ?

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Quelle est la destination exacte de ton buffer circulaire ? C'est pour faire quoi ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Mon buffer sera utiliser dans le cadre d'une communication client->serveur.
    il sera utilise pour lire sur la socket d'un client reseau sous Unix (NetBSD).

  9. #9
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Trap D
    Quelle est la destination exacte de ton buffer circulaire ? C'est pour faire quoi ?
    Bonjour,
    La destination exate de mon buffer circulaire sera une chaine de caractere qui sera annalyser par le server pour effecuter divers action

  10. #10
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Il y a de nombreuses solutions :

    Notons :
    R : le nombre de caractères recus lors d'un événement de réception,
    N : le nombre de caractères max lors d'une réception
    M : la taille maxi du message
    T : taille du buffer circullaire

    1) recevoir dans un buffer fixe de longueur N, transférer les R caractères dans le buffer circulaire et reconstituer le message dans un buffer fixe de taille M.

    2) utiliser un buffer plus grand (taille T+M mais pas vraiment circulaire), et après le traitement d'un message décaler le contenu du buffer vers le début.

    3) la solution que je préfére : faire de l'allocation dynamique de mémoire de taille R pour chaque réception, chainer ces zones mémoires, reconstituer le message dans un buffer fixe de taille M et ajuster/libérer les zones mémoires après reconstitution du message.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  11. #11
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Essai en cours
    Bonjour,
    La methode 3 de Groffito me plais, je vais l'essaiyer, je vous tiens au courrant.

  12. #12
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Ca marche !
    J'ai utiliser la 3eme methode de Graffito.
    Merci a tous

Discussions similaires

  1. implementation d'un Buffer Circulaire
    Par vbbarent dans le forum C++
    Réponses: 2
    Dernier message: 20/05/2008, 18h11
  2. Buffer Circulaire C#
    Par apelleti dans le forum C#
    Réponses: 2
    Dernier message: 19/05/2008, 15h19
  3. Réponses: 12
    Dernier message: 27/03/2008, 22h01
  4. Liaison série, Buffer Circulaire ?
    Par innosang dans le forum Ubuntu
    Réponses: 2
    Dernier message: 26/12/2007, 21h52
  5. buffer circulaire
    Par fumble dans le forum C
    Réponses: 34
    Dernier message: 10/03/2005, 08h51

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