Ahora con el telnet
Jose Manuel Vivó
jmvivoa en yahoo.es
Jue Oct 2 09:13:14 CEST 2003
El Miércoles, 1 de Octubre de 2003 19:41, Oscar Merchan escribió:
> Hello Lista,
>
> Bueno, mientras me contestais al otro problema, he ido haciendo mas
> cosillas, y con el otro error mas o menos para mi grabe, es a la
> hora de hacer un telnet desde python a otra maquina, las pruebas que
> he hecho en el interprete de python me han salido muy bien, pero la
> cuestion es que quiero que el telnet se haga en una de las ventanas
> del programa que he hecho en wxpytho, os pongo las lineas donde
> intento hacerlo ( que con lo negado que soy, fijo que esta mal )
>
> if orden == "telnet":
> tn=telnetlib.Telnet()
> tn.open(ip)
>
> self.text_ctrl_2.SetValue(self.text_ctrl_2.GetValue()+tn.interact()+"\n")
>
>
> Para el que se pregunte por que le sumo el valor anterior de lo que
> habia en la ventana, es simplemente para que toda la informacion se
> mantenga en la ventana, y que con el scroll se pueda ver todo, pero
> si me decis que no puedo hacer eso al querer hacer el telnet, pues
> nada me olvidare de ello.
Hola oscar.
Me imagino lo que quieres hacer pero no funciona seguro, piensa en los
siguientes puentos:
1. El metodo SetValue evalua la expresion que le pasas como parametro al
invocarlo, establece el valor (solo una vez) y termina. Con lo que no evalua
constane mente el resultado de una funcion que le pases ni nota que ha
cambiado.
2. Que valor de retorno tiene la función 'interactive'?.... ninguna. Se
limita a meterse en un bucle que termina con una señal de EOF que se produce
cuando se corte la conexion.
Si querias montar un cliente telnet, con esto no te servira. Tendrias que
pedir a la instancia del telnet el socket (get_socket()), ir haciendo reads
de el para insertarlos en el text al final, y luego escribir en el lo que te
escriban en el text (posiblemente capturando los eventos de pulsacion de
teclas).
Espero que te haya servido de ayuda.
Un Saludo.
Jose Manuel
Más información sobre la lista de distribución Python-es