eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2022-02-01 10:35 pm
Entry tags:

tty_term

Уже давно хотел в свой tty_term добавить поддержку сокетов: уж очень неудобно пользоваться неткатом в качестве клиента.
Добавил.
Заодно добавил дамп в файл (то, что вводит клиент, предваряется "> ", а то, что получает извне, предваряется "< ").
Тип сокета определяется тупым перебором. Если ничего не годится — аварийное завершение. Можно и сетевые (если пользователь укажет порт), и UNIX-сокеты (если порт не укажет, то "name" будет считаться именем сокета; как обычно, если ввести "\0name", будет подключение к сокету name без физического файла).
Так как во всех моих железяках протокол текстовый, я не заморачивался с расшифровкой бинарных (скажем, вводить числа, а они уже будут передаваться; аналогично полученные данные рисовать в HEX и DEC формате).
Комбинация ncurses и readline дает возможность разделить ввод и вывод (в том же nc совершенно невозможно работать, когда из сокета идет большой поток данных: непонятно, что ты уже ввел), а также иметь историю введенных команд. Возможно, в будущем добавлю поддержку автодополнения (указываешь файл со списком команд, они оттуда считываются и по ним ведется дополнение введенных команд).

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org