Bonjours ,
J'ai une application client/serveur à développer,
Mon client envoi une requète (* +0x04) pour savoir si des utilisateurs sont connectés au serveur
le serveur lit les données, et il répond avec le texte suivant :
réponse du serveur : * +LOGIN1 +\r +LOGIN2 +\r +LOGIN3 +\r ....+ 0x04(<<==caractère de fin)
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 //Bouton Connexion char TLogin[] = {4,0}; //définit le caratère 0x04 AnsiString UtilisateurConnect="*"; UtilisateurConnect=UtilisateurConnect+ TLogin ;//requete :quel sont les //utilisateur connecté If(....//test si les champs sont vide) { ... } else { ClientSocket1->Active=true; ClientSocket1->Socket->SendText(DemandeLogin);//requete pour savoir si mon login rentré est libre (le serveur renvoi 0 si OK 1 si exite déja voir screenshot) ClientSocket1->Socket->SendText(UtilisateurConnect);//demande auserveurs //les utilisateurs connectés }
Je n'arrive pas à receptionner les utilisateur et les mettres dans le TlistView et le Memo2
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 // Evenement OnRead ,ClientSocket1Read char TLogin[] = {4,0}; TListItem*AItem; //réponse envoyé par serveur (donne le 1er utilisateur connecté) AnsiString UtilisateurConnect="*" ; UtilisateurConnect=UtilisateurConnect+"LOGIN" ; UtilisateurConnect=UtilisateurConnect+"\r" ; UtilisateurConnect=UtilisateurConnect + TLogin ; AnsiString Buffer = Socket->ReceiveText();//Buffer contient les données envoyées par le serveur Memo1->Lines->Add(Buffer); if(Buffer==UtilisateurConnect)//compare les données du ' Buffer ' { //Memo2->Lines->Add(UtilisateurConnect); AItem=ListView1->Items->Add(); AItem->SubItems->Add(Buffer);//nom des utilisateurs receptionnés dans TlistView Memo2->Lines->Add(UtilisateurConnect);//nom des utilisateurs receptionnés dans Memo2 }
ScreenShot :
Partager