Не выполняется команда telnet

не выполняется tn.write() если перед ней стоит tn.read_until()

import telnetlib
from time import sleep



tn_host = "127.0.0.1"
port = 48655
loop = 100
tn = None
print('Waiting for telnet to start on ' + str(port))
while loop > 0:
    pass
    try:
        tn = telnetlib.Telnet(tn_host, port)
    except ConnectionRefusedError:
        loop -= 1
        pass
    if tn != None:
        loop = 0

print('Telnet connection on ' + str(port) + ' successful')

tn.read_until(b'Change\r\n',40)
tn = telnetlib.Telnet(tn_host, port)
tn.write(b'exec\n')
print(5)

Выше приведенный код должен ожидать сообщения b'Change\r\n' и потом посылать команду exec а также выводить на экран 5 Проблема в том что после того как поступило сообщение b'Change\r\n' он не выполняет команду tn.write(b'exec\n') но цифру 5 на экран выводит

Я пробовал вот так:

import telnetlib

tn = telnetlib.Telnet(tn_host, port)
tn.write(b'exec\n')

И если делать так то все выполняется но мне нужно выполнить tn.write(b'exec\n') только после того как поступит сообщение b'Change\r\n'

Как мне решить эту проблему ?


Ответы (1 шт):

Автор решения: Denys Kolodyazhnyi

Попробуйте tn.write(b“exec” +b”\n”)

→ Ссылка