WedX - журнал о программировании и компьютерных науках

telnet-сервер редактирования строки python

Я создаю сервер на python (что он делает, не имеет значения), но я хотел бы, чтобы он принимал соединения telnet и предоставлял интерфейс командной строки с возможностями редактирования строки (завершение вкладок, emacs/vi-mode и т. д.) и историю за сеанс . Я успешно создал сеанс telnet, отключил линейный режим и включил серверное эхо.

Сначала я думал об использовании readline, но модуль readline python, похоже, работает только для одного сеанса на стандартном вводе; и изучение лежащей в основе библиотеки readline, которая, похоже, работает так, как она работает.

Однако я хотел бы создать экземпляр (назовите его состоянием, если хотите) для каждого клиента и по мере поступления символов (байтов) в состояние. После того, как полная строка будет сгенерирована, она будет передана на сервер, который может ее проанализировать.

Итак, мой вопрос: если есть библиотека, которая обрабатывает такие вещи, даже c-библиотеки будет достаточно.

РЕДАКТИРОВАТЬ: чтобы уточнить, у меня уже есть полностью функциональный сервер, но я хочу использовать интерфейс telnet в качестве дополнения для перенастройки, получения информации и т. д.


  • Я не уверен, какое дополнительное состояние вам может понадобиться, если ваш сервер «полностью функционален». Не могли бы вы точно объяснить, что у вас есть до сих пор и что вам нужно, чтобы сделать то, что в настоящее время не может? 05.08.2010
  • Я хочу, чтобы сервер принимал соединения telnet, которые предоставляют интерфейс командной строки для доступа к функциям, предоставляемым сервером. Я добавил сокет прослушивания, и для каждого соединения он включил режим символов telnet. Вот где я застрял. (В качестве примера скажем, что у меня есть веб-сервер, которому я хотел бы предоставить доступ через telnet для изменения настроек и навигации по корневому каталогу. Это то, что я имею в виду, говоря, что сервер полностью функционален, а часть telnet будет дополнением. функция сервера не имеет значения.) 05.08.2010
  • @ext, можете ли вы поделиться тем, как вы подготовили базовый сервер? Мне нужно использовать что-то подобное, но я не могу добиться disabled line mode and enabled server echo 28.05.2018

Ответы:


1

Похоже, вы разобрались с частью TELNET, и теперь вы хотите предоставить функции, обычно встречающиеся в оболочках, таких как BASH, KSH и т. д. Я сам не пробовал, но посмотрите как shython: "универсальная оболочка с функциями как bash, так и python".

05.08.2010

2

Возможно, библиотека cmd может представлять интерес/помощь?

05.08.2010
  • Я работаю только для одного сеанса и использую readline. Мне нужно что-то, что хранит состояние для каждого сеанса, чтобы каждый из них мог взаимодействовать независимо друг от друга. 05.08.2010
  • Как упоминается на связанной странице, вы можете переопределить его средства ввода, чтобы он использовал что-то другое, кроме readline. Что касается сеансов, я считаю, что вы можете создать несколько объектов Cmd. 05.08.2010

  • 3
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]