Bonjour � tous,
Un petit probleme avec la communication par socket !
Je lance � partir d'une application cliente, une autre application serveur, sur le clic d'un bouton "Envoi", et je voudrais communiquer avec elle.
Lors de la connection de ma socket cliente ( ClientSocket1->Active = true ), je voudrais de suite envoy� un message � mon serveur.
Code Client :Code Serveur :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 void __fastcall TfrmClient::btnEnvoiClick(TObject *Sender) { ShellExecute(Handle,"open","ServeurMail\\ProgServeur.exe",NULL,NULL,SW_SHOWNORMAL); ClientSocket1->ClientType = ctNonBlocking; ClientSocket1->Active = true ; ClientSocket1->Socket->SendText("Test"); }
Du cot� de la Form Serveur, j'active la socket sur le OnActivate de la fenetre.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 void __fastcall TfrmServeur::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { AnsiString recept ; StatusBar1->SimpleText="Dialogue en cours" ; recept = Socket->ReceiveText() ; ShowMessage("reçu : "+recept); }
Mon probl�me est que je ne re�ois pas le premier coup, la chaine de caracteres "test", envoy� par mon client, juste apr�s sa connexion ...
En revanche si sur ma Form du client, j'utilise la m�thode SendText, sur le clic d'un autre bouton (et apr�s m'etre connect� en ayant cliqu� sur le bouton Envoi), le texte est bien re�u par mon serveur.
Je pense donc qu'il ya un laps de temps, entre la connexion de ma socket cliente, et le premier envoi de texte, ce qui fait que je perds la premi�re communication ...
Est ce que je me trompe, et comment puis je y remedier ?
D'avance merci !![]()
Partager