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