plantage lors de réception de fihier
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:
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