IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation et administration système Perl Discussion :

pb envoi sur POE::Component::Client::TCP


Sujet :

Programmation et administration système Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 30
    Points
    30
    Par défaut pb envoi sur POE::Component::Client::TCP
    Bonjour à tous

    Je souhaite écrire un client TCP à l'aide de POE::Component::Client::TCP. J'emploie un protocole qui existe déjà et que je ne peux pas modifier.

    Je me heurte par 2 fois (émission et réception) à un problème : mes commandes se terminent par des retours à la ligne \r\n (classique). Certaines renvoie des données supplémentaires derrière le retour chariot (la quantité est alors spécifiée dans la commande). le hic, c'est que dans le protocole, il n'y a pas de retour chariot derrière ces données supplémentaires.

    Le souci en réception pourrait à priori être résolu par l'emploi d'un filtre POE::Filter::Reference ou ::Map, ou même en gérant le souci dans le callback de réception comme je tente de le faire actuellement.

    Mais en envoi, je sêche : d'après la doc de ::Client::TCP, il semble qu'il ne soit possible d'utiliser les filtres qu'en réception. Le problème est que lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_[HEAP]->{server}->put ("ma commande")
    , le retour chariot \r\n est rajouté automatiquement.

    Ma question est donc la suivante : y a-t-il une solution pour empêcher que l'instance put rajoute automatiquement le retour à la ligne ?
    D'ailleurs, y aurait-il quelqu'un qui saurait me dire le nom de la classe qui se cache derrière $_[HEAP]->{server} ?
    S'il y a une solution, je suis prêt à parier que c'est par là qu'elle se cache.

    Merci pour vos réponses.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 30
    Points
    30
    Par défaut
    Bon ok, en fait pour répondre à la question numéro 2, (et il m'aura fallu pas mal de temps pour penser à ça), il suffisait de faire un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $_[HEAP]->{'server'}
    pour découvrir qu'il s'agit d'un POE::Wheel::ReadWrite. Dans les propriétés de ce composant, je découvre des méthodes get_input_filter et get_output_filter. Les commandes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $_[HEAP]->{'server'}->get_input_filter()
    et sa consoeur output me rendent toutes les deux toujours la même chose, à savoir le même filtre que j'ai déclaré dans mon ::Client::Tcp, en entrée comme en sortie, ce qui semble une bonne nouvelle, et résoudrait mon problème.

    Je n'ai pas encore tout à fait résolu le problème, c'est pourquoi je ne marque pas le topic comme résolu pour l'instant.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 30
    Points
    30
    Par défaut
    Ok en fait c'était bien ça, soit j'ai mal compris la documentation, soit elle est erronée. Le filtre qu'on spécifie est appliqué à la fois sur ce qui rentre, mais aussi sur ce qui sort.

    pb résolu avec POE::Filter::Map.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/04/2012, 10h54
  2. Serveur et Client TCP sur un même PC pour test
    Par JmbBoubou dans le forum Framework .NET
    Réponses: 0
    Dernier message: 24/11/2010, 23h03
  3. envoi de messages à un client sur irc
    Par ziguigui dans le forum Réseau
    Réponses: 0
    Dernier message: 24/03/2008, 23h16
  4. Réponses: 4
    Dernier message: 16/03/2007, 10h07
  5. Threads et POE::Component::Client::MSN
    Par malco dans le forum Langage
    Réponses: 0
    Dernier message: 28/11/2006, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo