3

我正在寻找启动一个MUD 客户端应用程序,它连接到托管在 telnet 服务器上的 MUD。对我来说唯一重要的是它可以在任何操作系统上轻松高效地运行。除了这个要求,我真的不喜欢任何语言。

因此,我正在寻找一个免费可用的 telnet 客户端库,我可以在此基础上构建我的应用程序,这样我就不必过多地处理协议的细节。

4

6 回答 6

7

对于这种事情,我总是会考虑使用Twisted (Python)。

美妙之处在于,如果您以后决定将其换成 SSH 或任何比 telnet 更安全的东西,您可以轻松地做到这一点。

于 2008-11-26T19:18:21.430 回答
3

扭曲,扭曲,扭曲!

要使用 telnet,请参阅 package twisted.conch.telnet。它有一些简单的API 文档,但有关使用它的真正信息来自在 Google Code Search 上的搜索,例如来自grailmud - 一个 MUD 服务器的这个块。

于 2008-11-26T21:24:16.293 回答
2

如果你喜欢 Perl , CPAN中有一个 telnet 接口。它非常小,但应该可以完成工作。

[编辑] libcurl也应该能够进行远程登录,尽管我找不到任何例子。

于 2008-11-26T19:33:02.820 回答
2

对于我所有的 MUD 编程,我只是使用 RFC 从头开始​​创建了自己的例程。

如果您想避免我的一些痛苦,我将它包装成一个相当简单的 C# 类,可以正确处理 Telnet。如果您想仔细阅读,可以在这里查看

此代码已被复制/粘贴并在 Windows 和 Linux(通过 Mono)上运行在少数单独的项目中,并且运行良好。

于 2008-11-26T19:41:32.477 回答
0

pmc ( http://sourceforge.net/projects/perlmudclient/ ) 试图做到这一点。上周我花了一些时间来经历它;它使用 Net::Telnet 的旧修改版本来完成连接工作。

我的问题是,当服务器发送部分行时,Net::Telnet 似乎有一个阻塞接口,即没有被换行符终止的行。它有两个支持这一点的特性(waitfor 和它的提示机制),因为几乎所有的telnet服务器都有不以换行符结尾的提示。

MUD 通常具有非标准的“提示”,并且在游戏过程中会有所不同;我管理的 MUD 有一个“您的选择:”提示作为其登录名 [它不仅仅是用于用户名],并且许多游戏功能都提供了替代提示。所以我怀疑你在寻找跨平台 Telnet 库时需要牢记这一点!

于 2009-06-12T12:40:36.130 回答
0

如果你喜欢 C,我衷心推荐libtelnet。它将维护一个内部状态,为您完成所有序列解析,并使用Q 方法IAC处理选项协商。

于 2012-02-19T20:22:26.017 回答