Telnet lib и выбор языка для клиента Telnet для разных ОС? - PullRequest
3 голосов
/ 26 ноября 2008

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

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

Ответы [ 6 ]

7 голосов
/ 26 ноября 2008

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

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

3 голосов
/ 27 ноября 2008

Витая, витая, витая!

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

2 голосов
/ 26 ноября 2008

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

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

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

2 голосов
/ 26 ноября 2008

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

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

0 голосов
/ 20 февраля 2012

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

.
0 голосов
/ 12 июня 2009

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

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

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

...