Bonjour,
je suis sur un projet informatique et j'essaie de r�cup�rer une image sur un serveur (en http). Je d�veloppe sur l'ide c++ builder 6..
j'utilise un socket afin de r�cup�rer l'image en m�moire dans un flux, mais j'ai un probl�me:
Lorsque j'utilise la fonction ReceiveLenght je n'arrive pas � recevoir la bonne taille de trame. Le serveur m'envoie une trame PLUS longue que ce que me retourne ReceiveLength.
L'avantage c'est que je re�ois bien des donn�es, et j'ai v�rifier avec le d�bogueur je re�ois les bonnes donn�es [trame r�ponse + donn�es (image)].
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 void __fastcall TForm1::SocRead(TObject *Sender, TCustomWinSocket *Socket) { int nReceived = Socket->ReceiveLength(); // nombre d'octets reçus char buffer[102000]; // buffer de récupération des paquets venant du serveur Socket->ReceiveBuf(buffer, nReceived); // lis que les 200 premier caractères la plupart du temps pStream->Write(buffer, nReceived ); // transférer dans le stream // pour traitement ultérieur }
N�anmoins, je ne re�ois quasiment jamais la trame compl�te � cause de ce probl�me. Est-ce que vous savez comment r�soudre ce probl�me? avez vous une autre m�thode de r�ception d'une image � me proposer?
Je suis preneur sur toutes les solutions que vous pourriez me proposer.
J'attends avec impatience vos r�ponses, merci !![]()
Partager