Отправить байт через Telnet в Python

В сценарии Python мне нужно отправить один байт через Telnet, например, со значением 0x06. Однако функция записи из telnetlib (Telnet.write(buffer)) принимает в качестве аргумента только строки.

Преобразование с использованием str(0x06) не работает, так как его вывод преобразует число в массив символов, а мне нужен символ, значение которого равно 0x06.

Итак, как отправить один байт через Telnet с помощью Python?


person AmiguelS    schedule 22.02.2017    source источник
comment
попробуйте \x06 должно работать   -  person Jean-François Fabre    schedule 22.02.2017
comment
Или b'\x06', если это для python3 — вы должны указать, с какой версией python вы работаете.   -  person mata    schedule 22.02.2017


Ответы (1)


Ты можешь использовать:

Telnet.write( chr(27) )

or

Telnet.write( "\x1b" )

например, для записи одного байта.

person KimKulling    schedule 22.02.2017
comment
Оно работает! Спасибо! Для дополнительных баллов: Что делать, если число не помещается в 1 байт, а нужно 2 байта? - person AmiguelS; 22.02.2017
comment
Определите формат, например 4 байта. Затем заполните его 0 для 1, например: 0001. для 11 это должно выглядеть как 0011. Вы можете использовать форматированную строку, чтобы написать это. - person KimKulling; 22.02.2017