kschn
Messages postés13Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention30 mai 2005
-
28 mai 2004 à 22:52
Fly57
Messages postés29Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention15 avril 2005
-
29 mai 2004 à 01:32
ben voila en fait le but c de faire un client server tcp avec indy en fait le client envoi un message au server et le server envoi une reponse au client mais le client narrive pas a recevoir la reponse en question.
Apres divers test on c apercu d'un truc bizarre l'evenement onWork du client tcp n'est jamais declenche (un simple beep; cette commande n'est jamais executee).
Le but c que le client puisse recevoir nimporte quand des donnee que le server envoi.
Bon ben merci davance a tous ceux qui pourront nous aider...
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 29 mai 2004 à 00:42
Et voilà la réponse.
Le problème est connu avec la version 8.0.25.
Mais la solution existe. Lire les commentaires dans le code ci-dessous :
procedure TForm1.Button3Click(Sender: TObject);
begin
with Client1 do
begin
//Déclenche l'évènement OnWorkBegin
BeginWork(wmWrite, Length(Edit_msge.Text));
//On effectue le travail normalement
WriteLn(Edit_msge.Text);
//Ok, c'est terminé alors on notifie les composants
EndWork(wmWrite);
end;
ListBox1.Items.Insert(0, Edit_msge.Text);
end;
procedure TForm1.Client1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
with ListBox1.Items do
case AWorkMode of
wmRead: Insert(0, Format('%d octets reçus', [AWorkCount]));
wmWrite: Insert(0, Format('%d octets envoyés', [AWorkCount]));
end;
end;
procedure TForm1.Client1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
ListBox1.Items.Insert(0, 'Début de la transaction');
end;
Et là, ça marche impeccable.
Bonne nuit à toutes et à tous :kisses)
Fly57
Messages postés29Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention15 avril 2005 29 mai 2004 à 01:32
ok là ça marche nickel, j'ai ajouté Insert(0, Client1.ReadLn); apres le case dans le Client1Work et je reçois bien ce qu'envoi le serveur (des fois des petites repetitions, mais ça doit se regler :))
merci Delphiprog pour ton aide c'est super sympa :)