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++Builder Discussion :

multithread [Non suivi]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut multithread
    Bonjour,
    J'ai dans mon application réseau un thread lancer à chaquer réception de message. Quand mon serveur envoie beaucoup plus vite ces messages. Mon client n'arrive plus à gérer et ne récupère plus aucun message.
    J'aimerais comprendre et ainsi permettre au client de récupérer les messages à son rythme.
    J'utilise les composants INDY multicast UDP
    D'avance merci pour votre aide

  2. #2
    Membre confirmé Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par défaut Message
    Bonjour,
    Est ce tu fais des tests de verification ?
    --> Message envoyé
    --> Reception message
    --> Message reçu corretement

    Peux être que ça va ralentir ton application !

  3. #3
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut
    Oui j'ai fait une numérotation des messages et je sais combien j'en ai perdu. Si je ne recois pas tous les messages formant mon image je jette les messages et attend une nouvelle image.
    Quand le serveur envoie des messages tres vite je perd tous les paquets ou presque.

  4. #4
    Membre confirmé Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par défaut Thread
    Dans ce cas là, pourquoi n'attends tu pas le message de retour du client avant d'envoyer un autre paquet ?

  5. #5
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut
    Parceque c'est une application multicast où j'aimerais que mon serveur envoie le plus vite possible et que les clients récupére à leur rythme les images. Sachant que certains PC peuvent être très lent. Mon application se basant sur du multicast UDP il n'y a pas d'acquittements des clients.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Le problème c'est que tes paquets ne restent pas indéfiniement sur le réseau. Tu es donc onbligé d'attendre que le PC en face soit prêt à recevoir le paquet suivant avant de l'envoyer.

  7. #7
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut
    En fait ce n'est pas un problème de coordination car mon client n'a pas besoin de recevoir chaque image, il peut en perdre quelques unes, il n'y aura pas de pbl.

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Ton problème est-il résolu ?
    A mon avis tu devrais regarder du côté de ta fonction qui récupère les paquets sur ton client ?
    Effectues tu un traitement immédiatement dessus ou bien stockes tu juste les données pour les traiter plus tard ?

    Etant donné que certains de tes postes clients sont très lent une bonne solution serait peut être de stocker tout ce que tu reçois dans un buffer et seulement à la fin de la réception traiter les données reçues ?

  9. #9
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut
    C'est ce que je fais je stock dans un buffer.
    Mais je numérote les paquets je verifie avoir récupérer tous les paquets correspondant à une image sinon j'attend la prochaine image. La problème est que lorsque mon serveur envoie une image ( 35 paquets) toutes les 500 ms ca fonctionne bien mais quand il envoie des images bcp plus rapidement le client n'arrive pas à se concentrer sur une image toutes les 500 ms

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Je soupçone quelque chose : si tu envoies tes images bien plus vite qu'une en 500ms il est possible que certains paquets de la deuxième image arrivent avant certains de la première...caratéristique de l'UDP.
    Est-ce que ta mise en buffer et ta vérification de la réception de l'intégralité de l'image le supporte ?

    Si supporter cela te paraît trop complexe, passe en TCP.

    EDIT : tiens nous au courrant s'il te plaît. Ca m'intéresse !

Discussions similaires

  1. [Kylix] Multithreads la galère
    Par Oyoboy dans le forum EDI
    Réponses: 16
    Dernier message: 16/07/2004, 11h03
  2. [WinAPI C++] MultiThreading et PostMessage
    Par Gruik dans le forum Windows
    Réponses: 7
    Dernier message: 29/03/2004, 15h58
  3. [WinAPI C++] MultiThreading?
    Par Gruik dans le forum Windows
    Réponses: 2
    Dernier message: 25/03/2004, 00h08
  4. [Win32]App multithread
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 25/09/2003, 09h57
  5. Multithreading sous HP Ux 11
    Par pykoon dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 18/10/2002, 23h36

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