Utilisation de tidtcpclient et tidtcpserver avec indy 10 et delphi 2005

cs_Mouffi Messages postés 4 Date d'inscription dimanche 4 juillet 2004 Statut Membre Dernière intervention 25 janvier 2005 - 25 janv. 2005 à 18:23
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 16 juin 2005 à 15:53
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.

1 réponse

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
16 juin 2005 à 15:53
Désolé j' ai pas de soluce: j' ai exactement le même problème ...
J' utilisais TServerSocket/TClientSocket et j' ai fait un chat plutot sympa avec envoi de fichiers etc ...
Si tu arrives à trouver un exemple, se serait sympa de me le refiler. A+

Mauricio
0
Rejoignez-nous