Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3939 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Composant Indy

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Composant Indy

n°829359
1a2b3c
Posté le 23-08-2004 à 11:35:51  profilanswer
 

Bonjour,
 
Débutant en Delphi 7, je souhaite réaliser une liaison de type chat entre 2 PC, en utilisant les composants TIdTelnetServer et TIdTelnetClient.
 
J'ai un memo qui affiche les caractères reçus, et un autre où je tape les caractères à envoyer.
 
Pour la réception, la ligne de code, dans la procédure Execute est:
 
memo1.Text:=memo1.Text+athread.Connection.ReadChar;  
 
La réception marche bien, mais pas l'émission, car le programme attend indéfiniment des datas (du moins je crois). Si je supprime cette ligne, l'émission du serveur vers client fonctionne bien.
 
Comment faire pour attraper les caractères "au vol", vu qu'il n'y a pas d'évènement du genre OnReceiveData ?
 
Merci d'avance pour votre aide.

mood
Publicité
Posté le 23-08-2004 à 11:35:51  profilanswer
 

n°830760
lsdYoYo
gravity powered
Posté le 24-08-2004 à 13:22:46  profilanswer
 

Il faut trouver la méthode qui indique le nombre de caractères en attente de lecture et n'appeler "ReadChar" que s'il y a au moins un caractère à lire...

n°831083
1a2b3c
Posté le 24-08-2004 à 18:29:24  profilanswer
 

Oui, j'y ai bien pensé, mais je n'ai trouvé aucune méthode qui permette de savoir si le buffer de réception est vide ou non.
 
Merci quand même pour la réponse.

n°831391
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-08-2004 à 23:25:08  profilanswer
 

Je suis pas sûr que telnet soit le meilleur choix pour ça...
Un simple serveur TCP ne serait pas mieux ?  


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°832175
1a2b3c
Posté le 25-08-2004 à 19:05:21  profilanswer
 

Certes, je vais essayer le simple serveur TCP (le protocole de communication peut-il y être pour quelque chose dans un simple échange de caractères?).  
 
Merci.

n°836284
0zero
Posté le 30-08-2004 à 11:16:12  profilanswer
 

Salut
Ece qu'on pourrait m'expliquer la différence entre les composants Tcpclient et Tcpserver de l'onglet Indy à celui d'Internet.
 
Merci  :jap:  @+

n°837493
antp
Super Administrateur
Champion des excuses bidons
Posté le 31-08-2004 à 10:36:36  profilanswer
 

Ceux de l'onglet Internet sont assez anciens et fournis avec Delphi depuis un bout de temps. Il s'agit d'une encapsulation des sockets Windows.
Ceux d'Indy sont plus récents (fournis avec Delphi depuis la version 6 seulement). Je ne sais pas quelle est la différence par rapport aux autres, mais ils sont peut-être un peu plus évolués (et s'ils ne le sont pas, ils servent juste de base aux autres composants Indy).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°842873
cedcox
poly-OS ! ;)
Posté le 05-09-2004 à 19:08:07  profilanswer
 

Effectivement, je n'ai pas trouvé un moyen de connaitre la taille des données reçues.  
Donc quelqu'un connait il un moyen de n'appeler la fonction de lecture que  lorsqu'il y'a quelque chose à lire ?
 
edit:  
bon bah j'ai trouvé en fait [:joce]

Code :
  1. while not FTerminated do
  2.       begin
  3.          tmp := FTCP.ReadLn('', 5);
  4.          application.processmessages;
  5.          if tmp <> '' then
  6.             begin
  7.                do_dbg (tmp);
  8.                // mettre ici votre code
  9.             end;
  10.       end;


 
bon je ne suis pas sur de la qualité du code, mais cela à le mérite de fonctionner et on retrouve le morceau complet dans les démos qui sont sur le site des composants indy.
Par contre, eux ne font pas de boucle mais utilise un timer qui déclenche la lecture toute les 500ms ce qui je suppose doit etre plus propre non ?


Message édité par cedcox le 05-09-2004 à 20:29:16

---------------
Les hommes se trompent, les preuves elles, ne mentent jamais...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Composant Indy

 

Sujets relatifs
un composant activex ne peut pas creer un objet getObjectun composant activex ne peut pas creer un objet getobject
Recherche composant zip/unzip[swing] cherche un composant arbre avec des noeuds graphiques
Recherche composant style listbox avec chackbox incorporéUn composant ActiveX ne peut pas créer un objet.
Composant de reconnaissance vocaleTab pour changer de composant
Problème sur composant "serverFTP" (indy9 ,builder6) !![ActiveX] Composant https libre ?
Plus de sujets relatifs à : Composant Indy


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)