我有一些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。
答案 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()