bosoir, j'ai un petit souci. j'ai réalisé un prog de transfert de fichier sans utiliser de thread et à la fin de la réception, le programme plante sans raison.
voici le code de la réception :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 void __fastcall TReception::Socket_ServeurClientRead(TObject *Sender, TCustomWinSocket *Socket) { if(envoi1 != 1) { //on recoit la taille taillerecue = Socket->ReceiveText(); barre_etat->Panels->Items[0]->Text = "Taille recue"; //affichage du statut //on envoit qu'on a bien recue la taille Socket->SendText("taille recue"); envoi1=1; // On la transforme en int taille = StrToInt(taillerecue); } else { // Tant qu'on est pas arrivé a la taille du fichier on receptionne les données while(taille != 0) { memset(buf, 0, sizeof(buf)); int n = Socket->ReceiveBuf(buf, sizeof(buf)); // On écrit dans le fichier WriteFile(FichierRecu, buf,n, &dwRecu, 0); taille = taille - n; barre_etat->Panels->Items[0]->Text = "Reception en cours"; //affichage du statut } // On ferme le fichier CloseHandle(FichierRecu); } barre_etat->Panels->Items[0]->Text = "Transfert terminé"; //affichage du statut }
merci
Partager