[Java] Et oui encore un probleme ...

Et oui encore un probleme ... [Java] - Programmation

Marsh Posté le 12-04-2001 à 16:12:50    

Bon j'utilise encore les servlets, la ca va ca marche pas trop mal pour le concept.
 
Mais voila, j'ai besoin de faire quelque chose de particulier,
 
je fais de la porgrammation réseau et en l'occurence je dois accéder à un routeur en telnet, pour ca j'utilise un socket en l'ouvrant sur le port 23. la Ok. Je récupère les flots d'entrée et de sortie. Et je désire récupérer certaines infos du routeur.
En premier lieu j'arrive bien à envoyer les données pour les commandes qui sont :
 
- enable
- show running-config
 
mais voila le show running-config n'est pas immédiat et donc le stream de lecture est vide (méthode ready()) et le probleme est donc que je ne peux pas récupérer le flot.
si je fais un sleep(5000) ou un truc du genre c'est interminable et la page de ne charge jamais...
autrement dit je cherche s'il n'existe pas une méthode du genre
wait_for_stream qui attend qu'il y ait des données à lire ?????
 
Pour info le routeur est un routeur Cisco séries 2500
(Et oui mes problemes sont particuliers hihi)


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 12-04-2001 à 16:12:50   

Reply

Marsh Posté le 12-04-2001 à 16:19:09    

mmm c bizarre moi j'ai fait de la prog reseau mais en C, et la fonction qui recupere des données attends que qq chose arrive, donc ça ne pose pas de pb un truc du style.
ça m'etonne qu'en JAVA il n'est pas fait pareil
ou alors j'ai rien compris a ton pb  :crazy:

Reply

Marsh Posté le 12-04-2001 à 16:23:54    

en principe un readLine en Java est bloquant c'est à dire qu'il attend les données... mais la on dirait qu'il zappe ... :??:  :??:  
par ailleurs dans la suite de mes instructions je fais un exit de mon routeur et ceci a l'air de fonctionner....


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 12-04-2001 à 16:25:06    

peut etre qu'il reçoit un flux "vide" c a dire ne contenant que le caractere "\0" ?

Reply

Marsh Posté le 12-04-2001 à 16:29:40    

Tout à fait, et c'est pour cela qu'il y a une méthode ready()
qui dit s'il ya des données à lire.
 
donc je fais une boucle while(flux.ready())
{
    lire.readLine();
}
et puis au bout d'un moment y'a plus de données à lire car le routeur bosse, et donc j'attends les données. (et ca je ne sais jamais à quel moment le routeur va finir son taff)


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 12-04-2001 à 16:36:05    

ton pb ce que ça quitte la boucle ? ou que tu reste bloqué dessus et que tu ne reçoit rien?

Reply

Marsh Posté le 12-04-2001 à 16:38:39    

ca quitte la boucle, normal : car y'a plus de données...
mais apres y'en a qui arrive quand le routeur fini de bosser et me rend sa config...


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 12-04-2001 à 16:41:11    

bon
je ne suis pas sur d'avoir bien tout compris, mais tu peut essayer cette bidouille:
tu test a chaque fois le msg reçu, et qd il est égal a null, et bin tu refait la boucle qd meme (genre tu prend un boolean).
comme ça tu pourra vérifier si tu reçoit qq chose apres ?
(oui c une solution de merde, mais c juste pour debugger)

Reply

Marsh Posté le 12-04-2001 à 16:42:51    

C'est bien bourrin mais je vais essayer ca :)
merci de ton aide, c sympa


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 12-04-2001 à 16:48:01    

dis moi ce que ça donne qd meme, je suis de savoir d'ou vient le pb

Reply

Marsh Posté le 12-04-2001 à 16:48:01   

Reply

Marsh Posté le 12-04-2001 à 16:53:05    

j'ai fait autre chose en fait et ca marche.
 
au lieu de faire (lire.ready())
 
je fais while (! lire.readLine().equals("end" ))
{    
    lire le flux
}
 
car en fin de config du routeur il y'a "end" d'écrit
 
et la ca marche bien !
 
ouf !   :crazy:


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 12-04-2001 à 16:57:26    

oui c pas con, d'ailleurs c a peut pres ce que je faisais mais j'y pensais plus...
desole

Reply

Marsh Posté le 12-04-2001 à 16:58:25    

Tu n'as pas de quoi a etre désolé tu m'as deja bien aidé :)


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 12-04-2001 à 17:02:46    

oui mais j'ai fais ça ya 3 mois c pour ça que je m'inquiete

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed