IOHandler. [Résolu]

Indigo_ 15 Messages postés mercredi 12 avril 2006Date d'inscription 27 février 2010 Dernière intervention - 10 juin 2006 à 23:01 - Dernière réponse :  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.
Afficher la suite 

12 réponses

Répondre au sujet
Indigo_ 15 Messages postés mercredi 12 avril 2006Date d'inscription 27 février 2010 Dernière intervention - 12 juin 2006 à 17:06
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Indigo_
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 11 juin 2006 à 18:12
0
Utile
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.
Commenter la réponse de f0xi
Indigo_ 15 Messages postés mercredi 12 avril 2006Date d'inscription 27 février 2010 Dernière intervention - 11 juin 2006 à 18:22
0
Utile
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 ?
Commenter la réponse de Indigo_
Indigo_ 15 Messages postés mercredi 12 avril 2006Date d'inscription 27 février 2010 Dernière intervention - 11 juin 2006 à 18:34
0
Utile
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
Commenter la réponse de Indigo_
Utilisateur anonyme - 11 juin 2006 à 22:50
0
Utile
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+
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 11 juin 2006 à 22:54
0
Utile
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+
Commenter la réponse de Utilisateur anonyme
Indigo_ 15 Messages postés mercredi 12 avril 2006Date d'inscription 27 février 2010 Dernière intervention - 11 juin 2006 à 23:02
0
Utile
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
Commenter la réponse de Indigo_
Utilisateur anonyme - 11 juin 2006 à 23:11
0
Utile
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+
Commenter la réponse de Utilisateur anonyme
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 12 juin 2006 à 20:00
0
Utile
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...
Commenter la réponse de f0xi
Utilisateur anonyme - 12 juin 2006 à 21:55
0
Utile
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
Commenter la réponse de Utilisateur anonyme
Indigo_ 15 Messages postés mercredi 12 avril 2006Date d'inscription 27 février 2010 Dernière intervention - 13 juin 2006 à 00:18
0
Utile
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
Commenter la réponse de Indigo_
Utilisateur anonyme - 13 juin 2006 à 00:38
0
Utile
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+
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.