probleme(détaillé au max) de reception de données Socket
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:
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
} |
Code:
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
} |
Je n'arrive pas à receptionner les utilisateur et les mettres dans le TlistView et le Memo2
ScreenShot :
http://img43.imageshack.us/img43/1245/detaily.png