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

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] telnet connexion!! (resolu)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] telnet connexion!! (resolu)

n°1365185
mc40
Posté le 12-05-2006 à 15:20:01  profilanswer
 

je vous explique le topo!!
 
Sur une machine je lance vlc avec la commande suivant:
 

Code :
  1. vlc -I rc --host 127.0.0.1


 
donc ma console RC et accessible en telnet ainsi je px piloter vlc!
 
donc je lance une connexion telnet classique avec putty et il n'y a pas de login et de passwd.  
Lorsque j'arrive sur ma console RC de vlc je tape
 

Code :
  1. goto 10


 
vlc lit donc le flux 10 de la playlist et retourne des infos:
 

Code :
  1. goto: returned 0 (no error)
  2. status change: ( stop state: 0 )
  3. status change: ( new input: udp://@x.x.x.x )
  4. status change: ( audio volume: 256 )
  5. status change: ( play state: 1 )


 
maintenant en perl:
 
le script perl de connexion

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Net::Telnet;
  4. my $host = 'x.x.x.x';#
  5. my $prompt = '/\[.+\]\$ $/';#
  6. $t->open($host);
  7. $t->cmd("goto 10\n" );
  8. ($result) = $t->waitfor();
  9. print $result;
  10. exit(0);


 
le probleme c'est que mon script perl ne me retourne pas le result de la commande!!
une idée?


Message édité par mc40 le 14-05-2006 à 13:55:08
mood
Publicité
Posté le 12-05-2006 à 15:20:01  profilanswer
 

n°1365762
Tentacle
Posté le 13-05-2006 à 23:15:59  profilanswer
 

Bonjour,
 
Selon la doc:

Code :
  1. ($prematch, $match) = $obj->waitfor($matchop);


Donc en faisant :

Code :
  1. ($result) = $t->waitfor();


tu récupères en fait $prematch qui contient la chaîne vide vu que $match contient toute la réponse.  
Si le problème vient bien de là, tu dois faire :

Code :
  1. (undef, $result) = $t->waitfor();


 
Sinon, plus simplement, tu peux utiliser :

Code :
  1. @result = $t->cmd("goto 10" );


Ce qui te permet de récupérer une ligne de résultat par élément du tableau.
(d'ailleurs, selon la doc de cmd, le \n est par défaut automatiquement ajouté)

n°1365881
mc40
Posté le 14-05-2006 à 13:53:44  profilanswer
 

hello  
 
merci pour ta reponse, mais j'ai laissé tombé telnet pour les sockets
unix bien plus "local" mdr!!Pour le changement de chaine TV j'utilise
donc xkbind qui pour chaque keycode renvoyé par ma télécommande
ati remote exécute le script telecom.pl avec en paramètre le num
de la touche.
 
"/home/telecom.pl 1"
 
telecom.pl renvoi le param à zap.pl par le biais d'un socket unix.
 
zap.pl est la pour gérer les chaines supérieures à 9. Lorsque zap.pl
reçoit le caractère spétial "attention je vx un chaine sup a 9", hop
petit fork le pere attend que le fils lui renvoie le chiffre des dizaines
et ensuite le pere attend le chiffre des unités et zap.pl revoie le
"goto chaine" a vlc et ça zap.
 
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] telnet connexion!! (resolu)

 

Sujets relatifs
[Résolu] Lier un TextBox à un DataSet dans un TabControl[Résolu] Obtenir date depuis date initiale
[JAVA] Pb de connexion DB Oracle à partir d'une applet [Résolu]Question basique sur les liens ! [résolu]
[Résolu][Oracle Text] chargement de fichiers / index[Résolu] Passer une variable dans une requete SQL
[Résolu] Utilisation SharedObject[RESOLU] retourner l'extension d'un fichier dans un champ file avec JS
requete mysql :s [résolu] 
Plus de sujets relatifs à : [Perl] telnet connexion!! (resolu)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR