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
Merci
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é"); }
Partager