Библиотека Telnet и выбор языка для кросс-операционного клиента telnet?

StackOverflow https://stackoverflow.com/questions/321808

  •  11-07-2019
  •  | 
  •  

Вопрос

Я хочу начать новую жизнь. ГРЯЗЕВОЙ клиент приложение, которое подключается к MUD, размещенному на сервере telnet.Единственное, что для меня важно, - это то, что он работает безболезненно и эффективно в любой операционной системе.Помимо этого требования, я на самом деле не продаюсь ни на одном языке.

Итак, я ищу свободно доступную клиентскую библиотеку telnet, на которой я мог бы основать свое приложение, чтобы мне не приходилось слишком много разбираться в деталях протокола.

Это было полезно?

Решение

Я бы всегда рассмотрел Twisted для такого рода вещей (Python).

Прелесть в том, что если вы позже решите поменять его на SSH или что-нибудь более безопасное, чем telnet, вы можете сделать это без особых усилий.

Другие советы

Витая, витая, крутая!

Чтобы использовать telnet, см. пакет twisted.conch.telnet . У него есть несколько спартанских Документы API , но настоящие информация об его использовании содержится в поиске по поиску кода Google , такие как этот слепок из grailmud - сервер MUD.

Для всего моего программирования MUD я просто создал свои собственные подпрограммы с нуля, используя RFC.

Если вы хотите избежать некоторых моих проблем, я поместил их в довольно простой класс C #, который правильно обрабатывает Telnet. Если вы хотите просмотреть его, вы можете просмотреть его здесь .

Этот код был скопирован / вставлен и запущен в Windows и в Linux (через Mono) для нескольких отдельных проектов и работает довольно хорошо.

В нем есть интерфейс telnet CPAN если вам нравится Perl.Это довольно минимально, но оно должно выполнить свою работу.

[править] libcurl также предполагается, что он может выполнять telnet, хотя я не смог найти никаких примеров этого.

pmc ( http://sourceforge.net/projects/perlmudclient/ ) была попыткой сделать именно это. Я провел часть прошлой недели, проходя через это; он использует более старую модифицированную версию Net :: Telnet для своей работы по подключению.

Моя проблема в том, что Net :: Telnet, кажется, имеет интерфейс блокировки, когда сервер отправляет частичную строку, то есть строку, которая не заканчивается новой строкой. Он имеет две функции, которые поддерживают эту функцию (waitfor и механизм подсказок), поскольку почти все серверы telnet имеют приглашения, которые не заканчиваются символом новой строки.

MUD часто имеют " подсказки " которые нестандартны и меняются в течение игры; на панели MUD, на которой я работаю, есть " Ваш выбор: " подсказка в качестве логина [это не только для имен пользователей], и многие игровые функции предлагают альтернативные подсказки. Поэтому я подозреваю, что вам нужно помнить об этом, когда будете искать кроссплатформенную библиотеку Telnet!

Если вам нравится C, я от всей души рекомендую libtelnet . Он будет поддерживать внутреннее состояние, которое выполняет весь анализ последовательности IAC для вас, и обрабатывает согласование параметров, используя метод Q .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top