Библиотека Telnet и выбор языка для кросс-операционного клиента telnet?
Вопрос
Я хочу начать новую жизнь. ГРЯЗЕВОЙ клиент приложение, которое подключается к MUD, размещенному на сервере telnet.Единственное, что для меня важно, - это то, что он работает безболезненно и эффективно в любой операционной системе.Помимо этого требования, я на самом деле не продаюсь ни на одном языке.
Итак, я ищу свободно доступную клиентскую библиотеку telnet, на которой я мог бы основать свое приложение, чтобы мне не приходилось слишком много разбираться в деталях протокола.
Решение
Я бы всегда рассмотрел Twisted для такого рода вещей (Python).
Прелесть в том, что если вы позже решите поменять его на SSH или что-нибудь более безопасное, чем telnet, вы можете сделать это без особых усилий.
Другие советы
Витая, витая, крутая!
Чтобы использовать telnet, см. пакет twisted.conch.telnet
. У него есть несколько спартанских Документы API , но настоящие информация об его использовании содержится в поиске по поиску кода Google , такие как этот слепок из grailmud - сервер MUD.
Для всего моего программирования MUD я просто создал свои собственные подпрограммы с нуля, используя RFC.
Если вы хотите избежать некоторых моих проблем, я поместил их в довольно простой класс C #, который правильно обрабатывает Telnet. Если вы хотите просмотреть его, вы можете просмотреть его здесь .
Этот код был скопирован / вставлен и запущен в Windows и в Linux (через Mono) для нескольких отдельных проектов и работает довольно хорошо.
pmc ( http://sourceforge.net/projects/perlmudclient/ ) была попыткой сделать именно это. Я провел часть прошлой недели, проходя через это; он использует более старую модифицированную версию Net :: Telnet для своей работы по подключению. Р>
Моя проблема в том, что Net :: Telnet, кажется, имеет интерфейс блокировки, когда сервер отправляет частичную строку, то есть строку, которая не заканчивается новой строкой. Он имеет две функции, которые поддерживают эту функцию (waitfor и механизм подсказок), поскольку почти все серверы telnet имеют приглашения, которые не заканчиваются символом новой строки.
MUD часто имеют " подсказки " которые нестандартны и меняются в течение игры; на панели MUD, на которой я работаю, есть " Ваш выбор: " подсказка в качестве логина [это не только для имен пользователей], и многие игровые функции предлагают альтернативные подсказки. Поэтому я подозреваю, что вам нужно помнить об этом, когда будете искать кроссплатформенную библиотеку Telnet!