R�cup�rer une image avec un socket?
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:
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? :cry:
Je suis preneur sur toutes les solutions que vous pourriez me proposer.
J'attends avec impatience vos r�ponses, merci ! :)