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.

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
}
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)].
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 !