-
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
-
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 !
-
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.
-
Thread
Dans ce cas l�, pourquoi n'attends tu pas le message de retour du client avant d'envoyer un autre paquet ?
-
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.
-
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.
-
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.
-
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 ?
-
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
-
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 !