IOHandler.

Résolu
Indigo_ Messages postés 15 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 27 février 2010 - 10 juin 2006 à 23:01
 Utilisateur anonyme - 13 juin 2006 à 00:38
Bonsoir tout le monde j'ai deux petites questions à vous poser dont une qu'est pa vraiment à sa place mais bon.

Ma première question concerne le composant TIdTCPClient de Indy. Je l'utilise dans un projet pour me connecter à un serveur tout fonctionne, j'ai réussi à mettre les textes de status dans un RichEdit (rien de compliqué jusque là) mais quand j'ai voulu commencer à interagir réellement avec le serveur je me suis heurté à un problème contrairement à d'autre composant comme le TIdIRC, il n'y a pas de IOHandler il faut donc en créer un. Le "hick" c'est qu'un IOHandler je n'ai aucune idée d'a quoi ça ressemble, aucune idée de comment ça fonctionne, comment ça réagit etc ... c'est pourquoi j'aimerai que quelqu'un m'éclaire la dessus en m'indiquant un composant et si possible un morceau de code que je puisse comprendre le principe.

La seconde question concerne l'infrarouge. J'ai vu quelques scrip de Rylryl (c'est comme ça je crois qu'on l'écrit) et j'ai vu qu'il parle de l'infrarouge par le port parallèle moi voudrais savoir comprendre comment interagir avec un IRda en usb. Si quelqu'un à de la documentation ou des adresses merci d'avances

Avant qu'on s'insurge ou qu'on m'insulte j'ai fait une recherche concernant les IOHandler avec delphi sur google et sur delphifr avant de poster et j'ai quasiment rien trouvé.

Merci aux gens qui répondront à mes questions pi coucou quand même aux autres.

12 réponses

Indigo_ Messages postés 15 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 27 février 2010
12 juin 2006 à 17:06
Un dernier petit mot sur mon post. Ne postez plus. J'abandonne j'ai utilisé indy les composant sont pas fini. J'ai utilisé TSockets ça beug. Je tente d'utiliser les composants d'ICS impossible ça s'arrète à un truc qui s'appelle "bind". Je pense que je suis pas assez patient pour faire de la programmation
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
11 juin 2006 à 18:12
un Handler est un identifiant unique qui permet de reconnaitre l'instance d'un elements au seins du systeme.

IOHandler specifie en toute logique un Handle d'entrée/sortie.

un Handle est generalement une valeur DWORD (double word) :: unsigned 32 bits

maintenant, je ne comprend pas pourquoi tu as besoin d'un handle pour communiquer avec un serveur ... et ne connaissant pas trop les compos indy je ne peu pas t'aider plus.
0
Indigo_ Messages postés 15 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 27 février 2010
11 juin 2006 à 18:22
Oki donc d'après la description que t'en donne ça a pas l'air d'être ça du tout que j'ai besoin. Merci quand même ça sert toujours de savoir.

Je viens de regardé dans les event et je vois pas le quel me permetrai d'afficher dans un mémo ou un richedit ce que le serveur reçoit. il y a dans les event :
OnWORK, OnWorkBegin, OnWorkEnd, OnStatus (je l'ai utilisé pour affiché dans le richedit le moment ou le client se connecte et se deconnecte), OnConnected, OnDisconnected.

Après en rouge on peut lier IOHandler et Intercept. Que faut-il que j'utilise ?
0
Indigo_ Messages postés 15 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 27 février 2010
11 juin 2006 à 18:34
Me suis trompé c'est pas ce que le serveur reçoit que je veux mettre dans mon richedit mais ce que le client reçoit. Je sais qu'il existe la commande readln mais faut la lier à quel event ? sur un bouton c'est sympa mais je me vois mal appuyé sur un bouton chaque fois que je veux avoir un truc de plus il faut absolument quelque chose qui ne réagit que si le client reçoit quelque chose parce que la commande readln bloque le prog tant que le serv ne reçoit rien si elle est activée.

J'éspère m'exprimé à peu près clairement. Merci d'vance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
11 juin 2006 à 22:50
Salut,


Effectivement tu as fais une boulette en parlant de IOHandler. Je te
rappelle que les composants Indy traitent des sockets bloquants : donc
la réception coté client n'a pas été implantée (ce qui fait que les
composants Indy peuvent etre qualifiées de grosse dau.. sans parler du
fait qu'ils ont tout changé dans la version 2005 : plus de 4800 pages à
se taper en Anglais pour connaitre les différences avec les anciennes
versions). Tu peux cependant palier ce probleme en créant un Thread
coté client pour recevoir les messages du serveur.


Une autre technique un peu pourrie mais qui fonctionne si le message
est envoyé rapidement par le serveur selon le schéma ci-dessous:


Client------->serveur------->Client


Procedure TForm1.ClientRead;

Var

Command : string;

Begin

Command:=Form1.Client.ReadLn;

While Command='' do

begin

Form1.Client.ReadLn;

end;

//Tu mets ce que tu veux

end;


Voila


A+
0
Utilisateur anonyme
11 juin 2006 à 22:54
Petite rectification : ce n'est  pas la fonction ReadLn qui bloque
le processus mais le TidTCPMachin d'Indy. Tu peux utiliser alors :
Application.ProcessMessages;


A+
0
Indigo_ Messages postés 15 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 27 février 2010
11 juin 2006 à 23:02
Mdr au premier abord indy ça à l'air d'être la panoplie révée de composant pour l'interaction via le net et chaque fois je me mange une boulette. Pour le TIdIrc il prenais pas en compte les accent c'était la misère. TIdTCPClient pareil il prend pas en charge la reception côté client. C'est joli d'avoir tous les composant de tous les protocol possible et imiginable (et encore y en manque) mais si y a pas un seul composant qui fonctionne sans à chaque fois devoir "réinventer la roue" ça craint. Je suis pas partisant de ceux qui réclame du pret à l'emploi mais vu mon niveau j'ai pas le choix.

Par suite je reformule ma question une 3 ème fois. Quelqu'un connaîtrait il un composant TCP qui est vraiment simple d'emploi et que si je reçoit un message qui vient d'un serveur TCP j'ai le droit à autre chose qu'une fatal error. Merci à Francky23012301 et aussi à fOxi. Merci d'avance aux autres personnes qui répondront
0
Utilisateur anonyme
11 juin 2006 à 23:11
Il y a TSockets : maintenant si  c''est pour autre chose que du
texte c'est l'horreur a utiliser. Ah oui : il y a des beugs aussi avec
TSockets.


Sinon tu peux aller voir du coté des composants ICS.


Voila A+
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
12 juin 2006 à 20:00
lol

mais non mais non ... on as tous rencontré des difficulté lors de notre apprentissage.
et preuve en est que ça marche il a de nombreux projets qui fonctionne bien avec les composants sus-només.

persevere, documente toi, regarde les exemples ect...
0
Utilisateur anonyme
12 juin 2006 à 21:55
Mais dis donc toi ; on se défile pas en courant. Reste la :C'est quoi
cette réaction ? allez un peu de courage et persevere un petit peu
0
Indigo_ Messages postés 15 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 27 février 2010
13 juin 2006 à 00:18
C'est très sympa mais sérieux je vois pas quoi faire. J'ai l'envi d'y arriver mais bon ça fait 3 composants que j'essaye et trois fois que je rate. Je garde mon projet en tête j'y arriverai bien un jour mais pour ce qui est de le faire en delphi j'abandone. Le truc là le 'bind' j'ai encore une fois aucune idée d'à quoi ça correspond et si je dois poser une question sur le forum chaque fois que j'ajoute une ligne de code autant que je fasse un topic où je vous demande de proguer à ma place ça revient à la même chose. J'ai eut beau regardé l'exemple de Vaughan. En mettant exactement ligne pour ligne la même configuration du composant mon composant plante sur "bind".

Merci quand même d'avoir répondu à mes questions et de m'avoir éclairé c'est là qu'on reconnaît la qualité de certains users de ce forum
0
Utilisateur anonyme
13 juin 2006 à 00:38
Bon j'ai poussé le bouchon un peu loin avec Indy :


*Bon deja les sources des composants Indy sont disponibles (si je dis pas de betises ).
Donc en faisant un chtit tour sur Google tu pourras avoir un lien pour
avoir les sources et donc apprendre à construire un IOHandler.


*Ensuite la procedure Sparadra que je t'ai passé : bon si tu fais le
truc correctement tu peux récuperer un message meme apres un temps de
réponse assez long (pas 3h non plus). En fait j'ai meme deja reussit a
faire un tchat avec. Par contre sur le principe ce n'est pas bien.


*Pour l'histoire de ton Infra Rouge, j'ai du mal à utiliser ma télé donc j'aurais du mal à te mettre sur une voix .
Mais il doit bien y avoir quelques liens meme sur des sites anglosaxons
sur le sujet (meme si je pense que Delphi ne doit pas etre bcp utilisé
pour ca à la différence du C++). Je regarderai cela demain.


Regarde pour Indy (la source ou la procedure que je t'ai passé). Règle ce probleme la puis apres tu fera le machin avec l'IR . Chaque chose en son temps


A+
0
Rejoignez-nous