[edit] le vrai pb est donné dans la 4eme reponse [/edit]
Bonjours, pour un programme que je dev, j'aurait besoin de transferrer de grosses données, je n'ai pas encore généré la partie permettant de generer ces gros fichier (2.4Mo au max).
afin de m'entrainer en attendant, j'essaie de transferrer un fichier bitmap.
hors, je bloque un peu sur la facon de proceder
ce que je pense faire : envoyer une sorte de header qui contiendrat la taille du fichier a transferer... (je me fiche du nom, au final y'en aura pas...)
je vous donne le bout de code (qui plante pour le moment)
j'avait aussi essayé de proceder ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 wxFile *myfile ; myfile= new wxFile("./image/testImage.bmp"); off_t taille = myfile->Length(); //taille en octet :) /* m'a servit a connaitre la grandeur renoyé par la fonction Lentgh() wxString temp; temp<<taille; memoLog->AppendText( temp); */ int *buffer[taille] ; // on crée un buffer de la taille donnée par Length() for (int i = 0; i < taille; i = i + 1024) { myfile->Read(buffer, 1024); socketImgCli->Write(&taille, 1024); } myfile->Read(buffer, 1024); socketImgCli->Write(&taille, 1024);
le deux font planter windows... (machin a generé une erreure et sera fermé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 myfile->Read(buffer, taille);//on copie dans buffer le fichier //on encvoie la taille, puis les données socketImgCli->Write(&taille, 4); //on envoie donc les données socketImgCli->WriteMsg(buffer, taille);
mais ca passe a la compilation...
mon pb etant que je ne sait pas d'avance de quelle taille sera mon fichier.
si mon header fait une taille de 4, c'est que l'entier que j'envoie est sur 4 octets d'apres la doc que j'ai lut...
meme si je n'envoie que le "header" de la seconde solution ca plante...
ps : ce ne sont pas mes sockets qui sont en cause, je pense, car des echanges de données ont deja eu lieu a ce niveau...
voila
Partager