JTextArea + flux de telnet [Résolu]

cs_ghofrane 44 Messages postés mardi 18 juillet 2006Date d'inscription 11 août 2009 Dernière intervention - 27 nov. 2007 à 14:46 - Dernière réponse : assiaasy 6 Messages postés samedi 14 août 2010Date d'inscription 24 août 2010 Dernière intervention
- 22 août 2010 à 19:06
Bonjour,
j'ai le programme suivant :
 TelnetWrapper telnet = new TelnetWrapper();      
                                               
                             //connect to routeur        //
                          try {
                                   telnet.connect("192.168.54.150", 23);
                                  telnet.login("passwd");
                                  System.out.println(telnet.send("en"));
                                  telnet.login("passwd");
                                  
                                  telnet.send("show running-config | tee 192.168.54.65");
                                       System.out.println(telnet.waitfor(" transport input telnet"));
                                 telnet.disconnect();
                                       } catch(java.io.IOException ef) {
                                   ef.printStackTrace();
                                }
 le  résultat de telnet.send(dernière commande) est affiché à la console ( system.out)
Or je veux le récupérer dans un JTextArea. Et je ne sais pas comment rederiger le flux vers JTextArea

Merci de votre aide.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 27 nov. 2007 à 15:17
3
Merci
Salut,

voici un petit code d'exemple (seule la méthode streamRedirect est importante, le rester c'est pour le test) :

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;

import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Test extends JFrame {

    public Test() {
        setDefaultCloseOperation(3);
        setSize(800, 600);
        setLocationRelativeTo(null);
        final JTextArea area = new JTextArea();
        setContentPane(area);
        streamRedirect(area);
    }
   
    private void streamRedirect(final JTextArea area) {
        //prépare le mode de sortie du flux pour stderr
        PrintStream psStdErr = new PrintStream(new OutputStream() {
            @Override
            public void write(int b) throws IOException {
                area.append("" + (char)b);
            }
        });
        //prépare le mode de sortie du flux pour stderr
        PrintStream psStdOut = new PrintStream(new OutputStream() {
            @Override
            public void write(int b) throws IOException {
                area.append("" + (char)b);
            }
        });
        //Change la dirrection du flux pour std out/err
        System.setErr(psStdErr);
        System.setOut(psStdOut);
    }
   
    public static void main(String[] args) {
        new Test().setVisible(true);
       
        //test
        System.out.println("Hello de stdout");
        System.err.println("Hello de stderr");
    }
   
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Twinuts
cs_ghofrane 44 Messages postés mardi 18 juillet 2006Date d'inscription 11 août 2009 Dernière intervention - 28 nov. 2007 à 09:31
0
Merci
Bonjour,
merci beaucoup c'est exactement ce que je cherchais.
merci.
Commenter la réponse de cs_ghofrane
cs_abdellah01 2 Messages postés dimanche 28 décembre 2008Date d'inscription 30 avril 2010 Dernière intervention - 30 avril 2010 à 13:50
0
Merci
Merci pour ce magnifique programme!!!
Commenter la réponse de cs_abdellah01
assiaasy 6 Messages postés samedi 14 août 2010Date d'inscription 24 août 2010 Dernière intervention - 21 août 2010 à 16:40
0
Merci
Salut Twinuts,
je suis étudiante et je suis sur le point de réaliser une interface java pour la configuration d'un routeur cisco via telnet, je travail sur windows XP. j'ai utilisé le code suivant pour me connecté au routeur en mode privilégié.

TelnetWrapper telnet = new TelnetWrapper();

//connect to the ipaddress //
try {

telnet.connect("192.168.0.1", 23);
telnet.login("class");
System.out.println(telnet.send("en"));
telnet.login("cisco");

System.out.println(telnet.waitfor(" transport input telnet"));
telnet.disconnect();
} catch(java.io.IOException e) {
e.printStackTrace();
}
}
}

mais j'arrive pas à me connecter au routeur on me donne le message suivant :
Password: timeout expired!
% Bad passwords

merci pour votre aide :)
Commenter la réponse de assiaasy
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 22 août 2010 à 01:38
0
Merci
Salut,

Bah dans le code que tu mets tu semble pas lui donner de password





------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Commenter la réponse de Twinuts
assiaasy 6 Messages postés samedi 14 août 2010Date d'inscription 24 août 2010 Dernière intervention - 22 août 2010 à 04:59
0
Merci
salut merci d'avoir répondre javé presque perdu l'espoir
en fait g changé la méthode login de la classe TelnetWrapper comme suit :

public void login( String pwd) throws IOException {
waitfor("password:"); // throw output away
send(pwd);
}

parceque g pas configuré le routeur de sorte qu'il me demande le username pour telneter, sinn même si je le configure avec le username et je laisse la classe login comme ça :

public void login(String user String pwd) throws IOException {
//waitfor("login: "); // throw output away
//send(user);
waitfor("password:"); // throw output away
send(pwd);
}

ça me donne rien du tout, on me demande le username et il se bloque ici :(

Voilà le nom du package que g utilisé jsd.telnet
merci infiniment :)
Commenter la réponse de assiaasy
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 22 août 2010 à 12:39
0
Merci
Salut,

Perso les telnet je pref faire à la mains avec un bon vieux socket.....
Pourquoi tu te prend le choux ? si il te demande quand même le username fait ton automate de tel façon qu'il s'adapte automatiquement en fonction de ce que te demande le routeur...




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Commenter la réponse de Twinuts
assiaasy 6 Messages postés samedi 14 août 2010Date d'inscription 24 août 2010 Dernière intervention - 22 août 2010 à 14:35
0
Merci
salut,
dsl g pas bien saisi je suis débutante en développement, je seré reconnaissante si vous m'expliqueré comment faire??
Commenter la réponse de assiaasy
assiaasy 6 Messages postés samedi 14 août 2010Date d'inscription 24 août 2010 Dernière intervention - 22 août 2010 à 19:06
0
Merci
salut,
en fait je suis sur le point de réaliser une interface java pour afficher les résultats des commandes show d'un routeur, donc j'utilise le code ke g déja donné pour se connecté au routeur, mais si vous me suggéré une solution meilleure je seré très reconnaissante
Commenter la réponse de assiaasy

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.