Python telnetlib read_all 挂起直到超时

标签 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 database router的输出很小时,脚本工作正常,但是当它很大(大约73kb)时,代码会卡住在read_all()中> 调用直到超时。

我的问题是:为什么会发生这种情况? read_all 是否可以处理某种最大输出大小?

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

提前谢谢您。 圣地亚哥·维达尔。

最佳答案

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

               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()

关于Python telnetlib read_all 挂起直到超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36464520/

相关文章:

python - 将 telnetlib 的 Telnet.interact() 流写入文件

python - 在 Python 中使用 Pandas 查找每日最大小时数

python - 在进行网络编程时,是否有经验法则来确定使用多少个线程?

c - 用 C 调试 Telnet 连接

php - 从 php 网页运行 Expect 时公布自定义终端大小

python telnetlib 模块 : reading and waiting for responses

python - 如何对时间值列表进行排序?

python - 用掩码为真的另一个张量填充张量

perl - 我认为在 perl 中的 Telnet 输入缓冲区问题