[pointeur][Socket]Probleme de pointeur pour un envoi vers un socket
Bonjour,
J'ai un serveur de socket C++ et un client socket en Java. A priori le code du Client est correct. J'ai modifié le serveur de socket en C++.
J'envoie donc vers le socket la structure sz_rfbFramebufferUpdateRectHeader
qui est bien relu dans le client.
Ensuite le client lit sz_rfbZlibHeader qui contient le nombre de byte pour la buffer final qui contient une image PNG.
La aussi je relis bien la bonne valeur.
Par contre au moment de lire le PNG je n'ai que des Zéros dans à la lire dans le socket.
A noter la fonction write écrit le contenu du buffer qui pointe bien vers contenu souhaité.
Donc mon erreur :aie: doit provenir de l'assignation dans this->buffer (un BYTE *), mais je ne parviens à me sortir de ce guêpier (pour rester poli).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
BYTE * dest;
.....
this->buffer =dest+sz_rfbFramebufferUpdateRectHeader+sz_rfbZlibHeader;
int buffersize = (int)this->encodePNG(source,rectW,rectH);
write(oss.str(),this->buffer,buffersize);
totalCompDataLen = buffersize;
// Format the ZlibHeader
rfbZlibHeader *zlibh=(rfbZlibHeader*)(dest+sz_rfbFramebufferUpdateRectHeader);
zlibh->nBytes = Swap32IfLE(totalCompDataLen);
//rfbPNGData * endDest=(rfbPNGData *)(dest+sz_rfbFramebufferUpdateRectHeader+sz_rfbZlibHeader);
//endDest->data= this->buffer;
// Update statistics
encodedSize += sz_rfbZlibHeader + totalCompDataLen;
int ret = sz_rfbFramebufferUpdateRectHeader +sz_rfbZlibHeader+totalCompDataLen; |