Python telnetlib read_all зависает до истечения времени ожидания

У меня есть некоторый код 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 маленькие, скрипт работает нормально, но когда они большие (примерно 73 КБ), код зависает в вызове read_all() до тех пор, пока это время ожидания.

Мой вопрос: почему это происходит? Есть ли какой-то максимальный размер вывода, который может обрабатывать read_all?

Я должен отметить, что если я использую read_very_eager() вместо read_all(), код работает нормально.

Заранее спасибо. Сантьяго Видаль.


person Santiago Vidal    schedule 07.04.2016    source источник


Ответы (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()
person Elizabeth Gonzalez Huerta    schedule 10.04.2016