Python telnetlib read_all挂起直到超时

时间:2016-04-07 00:17:45

标签: python telnet telnetlib

我有一些Python代码通过telnet连接到OSPF守护进程(由Quagga运行),然后执行以下操作:

tn.write("show ip ospf database router\n")
tn.write("exit\n")
my_text = tn.read_all()

show ip ospf数据库路由器的输出很小时,脚本运行正常,但是当它很大(大约73kb)时代码冻结在 read_all()打电话直到超时。

我的问题是:为什么会这样? read_all可以处理某种最大输出大小吗?

我应该注意,如果我使用 read_very_eager()而不是 read_all(),代码就可以正常运行。

提前谢谢你。 Santiago Vidal。

1 个答案:

答案 0 :(得分:1)

您可以使用以下行控制输出的大小:

               Telnet.set_debuglevel (debuglevel)

设置调试级别。 debuglevel的值越高,您获得的调试输出就越多(在sys.stdout上)。

例如:

tn.write("show ip ospf database router\n")
tn.write("exit\n")
my_text = tn.set_debuglevel(1000)
my_text = tn.read_all()