Voilà pour ceux qui m'ont deja filé un coup de main, c'est un deuxieme soucis que je rencontre.
Dans mon projet je communique avec un serveur pour l'identification d'un utilisateur autorisé a faire fonctionner mon application. Pour cela je lui envoie la trame suivante:
La réponse du serveur a ma tentive de connexion est:[LOGIN]NomDeLogin;MotDePasse;PartieOpérative[/LOGIN]
-Pour une authentification réussie-Pour une authentification erronée[LOGIN]OK;[/LOGIN]Dans le cas d'une authentification erronée j'aimerai pouvoir récupérer le message renvoyé par le serveur pour le traiter. J'ai deja une pré-analyse de faite. Je teste la réponse du serveur si elle vaut OK je donne l'accés au programme. Si elle vaut NO j'aimerai pouvoir afficher l'erreur dans un ShowMessage et permettre une nouvelle tentative de connexion.[LOGIN]NO;Message[/LOGIN]
J'utilise actuellement la totalité de ma trame pour indiquer la nature de mon erreur mais je prefererai récupérer unique la partie Message de la trame retour.
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 void __fastcall TForm1::ClientRead(TObject *Sender, TCustomWinSocket *Socket) { AnsiString msgErr; if (Socket->ReceiveText()== "[LOGIN]OK;[/LOGIN]"){ ShowMessage("Vous etes connecté au Controle d'Acces de SimCity"); Form3->ApLog->Lines->Add("Connexion au controle d'accés réussie"); Form2->ShowModal(); Close(); } else { msgErr = Socket->ReceiveText(); Form3->ApLog->Lines->Add("Connexion échouée:" + msgErr); } }
Je ne vois pas comment procéder pour "enlever" le début et la fin de la trame. Si vous pouvez m'eclairer ça serait sympa. Merci
Partager