|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
![]() Inscription : janvier 2012 Messages : 4 ![]() |
Bonjour,
Je viens aujourd'hui suite à un petit soucis que je rencontre dans mon application réseau et qui me parait étrange. Le problème se situe lors d'un envoi/réception précis. Donc tout d'abord voici un petit bout de code pour illustrer: Méthode add: Code :
Code :
Code :
Code :
Format trame attendue côté client: msg_type|index|name|num|type|size|
Ma vision de l'envoi 2: - Instanciation d'un objet msg avec en paramètre le type du message - Ajout de divers infos au contenu de msg - Envoi - Puis on recommence autant de fois que nécessaire... Il devrai donc y avoir X envois (i < infosIndex.size()) mais voici ce que j'obtiens côté client: Code :
Trame reçue: msg_type|index|name|num|type|size|msg_type|index|name|num|type|size|msg_type|index|name|num|type|size|...
J'espère que tout cela sera suffisant pour tenter de me répondre ^^" En tout cas, j'arrive pas a comprendre pourquoi le code fait cela =/ Cordialement, |
||||||
|
|
00
|
|
|
#2 | ||
|
Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 29 ![]() |
Salut, c'est sûrement parce que les données sont placées dans un tampon pour éviter de consommer trop de ressources. Du coup elle ne sont envoyées qu'au dernier moment (ou quand le tampon est plein).
Pour éviter ça il faut activer le flag PUSH dans le paquet, ça fait une émission immédiate du paquet à l'appel de send. J'imagine que le protocole doit être TCP, donc normalement il faut s'y prendre comme ça : (en rajoutant l'option NO_DELAY à la socket) Code :
C++dialement, Pop360 |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com