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
, le retour chariot \r\n est rajouté automatiquement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $_[HEAP]->{server}->put ("ma commande")
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.
Partager