Salut à tous.
Je fais un chat client/serveur.
Je voudrais envoyer une image du serveur au client mais j'ai une erreur de type List Index Out Of Bound.

Je sais que c'est un probleme d'index dans la liste mais je n'arrive pas à trouver une solution.

Voici le code de l'envoi

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
void __fastcall TForm_principale::ServerSocketClientConnect(
      TObject *Sender, TCustomWinSocket *Socket)
{
 
     Memo_archive->Lines->Add("Le client s'est connecter");
     ListBox_connecter->AddItem(Socket->RemoteAddress ,Socket);
     ListBox_connecter->ItemIndex=0;
 
 
     //envoi de l'avatar
     // Si une connection est établi alors on renvoi la nouvelle image en appellant les
     if (est_serveur == false)
     {
           Memo_archive->Lines->Add("Erreur envoi avatar");
     }
     if (est_serveur == true)
     {
            //------------voici l erreur         
            ServerSocket_imageClientConnect(Sender,Socket);
     }
 
}

Si je debugge en pas à pas, alors l'application a un problème à ServerSocket_imageClientConnect




Voici quand meme cette fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm_principale::ServerSocket_imageClientConnect(
      TObject *Sender, TCustomWinSocket *Socket)
{
           TMemoryStream *stream = new TMemoryStream();     // création de la zone mémoire
 
           // On sauvegarde l'image dans la zone mémoire
           Image_mon_avatar->Picture->Bitmap->SaveToStream(stream) ;
 
           // On envoi la zone mémoire par le ServerSocket_image
           ServerSocket_image->Socket->Connections[recuperer_indice_client()]->SendBuf(stream->Memory, stream->Size);
 
           delete stream;
           Memo_archive->Lines->Add("Avatar envoyé");
}
Merci