OVH Cloud OVH Cloud

petit probleme

4 réponses
Avatar
sebastien.brejotbarsacq
bonjour,
je sais que ce n'est pas le bon groupe mais je desespere de n'avoir
pas encore de solution au probleme qui vient.

je developpe une appli Client/Server sous win98 se et Visual C++ 6.0.
je dois faire du transfert de fichier (de taille variable 500Kb a
50Mb+).
j'ai decide d'utiliser les sockets asynchrones (class CAsyncSocket).
le transfert de fichiers se fait par packets de taille fixe (0x1000
bytes).
pour chaque packets, j'ai une petite entete utile (numero packet
transmis, crc, ...).
j'utilise la fonction Send() de CAsyncSocket pour la transmission. A
reception de l'error WSAEWOULDBLOCK, je pose mes donnees dans une
file.
la creation de la socket est faite pour default (... | FD_WRITE |
...), ainsi
des que la socket est dispo en ecriture, l'appel a la fonction
OnSend() est
effectue, et je transmets les elements de la file.

le probleme: les packets recus par le serveur sont dans le desordre,
pourquoi???

merci pour vos reponses.

4 réponses

Avatar
Fabien LE LEZ
On 19 Aug 2003 01:56:13 -0700,
(seb) wrote:

je sais que ce n'est pas le bon groupe


Dans ce cas, pourquoi ne postes-tu pas sur le bon groupe ? -_-


--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html

Avatar
Guillaume Gourdin
HS ici.

Mais si justement tu utilises des CAsyncSocket, rien ne te garanti l'ordre
d'arrivée des paquets. Utilise ton header pour stocker l'ordre de tes
paquets ou alors utilise la classe CSocket.

"seb" a écrit dans le message news:

bonjour,
je sais que ce n'est pas le bon groupe mais je desespere de n'avoir
pas encore de solution au probleme qui vient.

je developpe une appli Client/Server sous win98 se et Visual C++ 6.0.
je dois faire du transfert de fichier (de taille variable 500Kb a
50Mb+).
j'ai decide d'utiliser les sockets asynchrones (class CAsyncSocket).
le transfert de fichiers se fait par packets de taille fixe (0x1000
bytes).
pour chaque packets, j'ai une petite entete utile (numero packet
transmis, crc, ...).
j'utilise la fonction Send() de CAsyncSocket pour la transmission. A
reception de l'error WSAEWOULDBLOCK, je pose mes donnees dans une
file.
la creation de la socket est faite pour default (... | FD_WRITE |
...), ainsi
des que la socket est dispo en ecriture, l'appel a la fonction
OnSend() est
effectue, et je transmets les elements de la file.

le probleme: les packets recus par le serveur sont dans le desordre,
pourquoi???

merci pour vos reponses.


Avatar
sebastien.brejotbarsacq
"Guillaume Gourdin" wrote in message news:<bhsovh$13em$...

Mais si justement tu utilises des CAsyncSocket, rien ne te garanti l'ordre
d'arrivée des paquets. Utilise ton header pour stocker l'ordre de tes
paquets ou alors utilise la classe CSocket.


merci guillaume,
ok pour le header,
sinon la classe CSocket garantit l'ordre des envois et des receptions ??
le send et le read non bloquant??

Avatar
drkm
(seb) writes:

"Guillaume Gourdin" wrote in message
news:<bhsovh$13em$...


[...]

la classe CSocket


[...]

l'ordre des envois et des receptions


[...]

send


[...]

read


[...]

non bloquant


HS.

--drkm