Bonjour,
j'ai rencontrés plusieurs problèmes lorsque je veux faire un client/serveur TCP avec les derniers composants indy.
Voici un extrait de mon code :
procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPServer1.DefaultPort := 100;
IdTCPServer1.Active := True;
end;
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
str: string;
begin
str := '';
with AContext.Connection.IOHandler do
begin
while Readable() do
str := str + ReadString(1);
end;
Edit1.Text := Edit1.Text + str;
end;
Pour commencer, je voudrais récupérer les données du client au fur et a
mesure qu'elles arrivent (pour cela, je fait un "telnet localhost
100" et j'ecris au clavier). Le problème est que je ne trouve pas de
méthode idéale, il y a ReadLn qui lie des lignes ou bien des chaines
séparés par des délimiteurs alors que je veux toute la chaine a chaque
fois qu'elle arrive.Il y a une methode ReadBytes qui a l'air pas mal
qui je crois renvoie un TBytes. Peut-on le convertir en une chaine ?
Mon deuxième problème se situe au niveau du controle IdTCPClient1. Il
n'existe pas de méthode qui s'execute lorsque le client recoit des
données du serveur. Le client doit pouvoir lire a n'importe kel moment
et non juste après l'envoi d'une chaine au serveur, sans interrompre le
programme en cours.
Merci d'avance,
Mouffi.