我正在寻找启动一个MUD 客户端应用程序,它连接到托管在 telnet 服务器上的 MUD。对我来说唯一重要的是它可以在任何操作系统上轻松高效地运行。除了这个要求,我真的不喜欢任何语言。
因此,我正在寻找一个免费可用的 telnet 客户端库,我可以在此基础上构建我的应用程序,这样我就不必过多地处理协议的细节。
对于这种事情,我总是会考虑使用Twisted (Python)。
美妙之处在于,如果您以后决定将其换成 SSH 或任何比 telnet 更安全的东西,您可以轻松地做到这一点。
扭曲,扭曲,扭曲!
要使用 telnet,请参阅 package twisted.conch.telnet。它有一些简单的API 文档,但有关使用它的真正信息来自在 Google Code Search 上的搜索,例如来自grailmud - 一个 MUD 服务器的这个块。
对于我所有的 MUD 编程,我只是使用 RFC 从头开始创建了自己的例程。
如果您想避免我的一些痛苦,我将它包装成一个相当简单的 C# 类,可以正确处理 Telnet。如果您想仔细阅读,可以在这里查看。
此代码已被复制/粘贴并在 Windows 和 Linux(通过 Mono)上运行在少数单独的项目中,并且运行良好。
pmc ( http://sourceforge.net/projects/perlmudclient/ ) 试图做到这一点。上周我花了一些时间来经历它;它使用 Net::Telnet 的旧修改版本来完成连接工作。
我的问题是,当服务器发送部分行时,Net::Telnet 似乎有一个阻塞接口,即没有被换行符终止的行。它有两个支持这一点的特性(waitfor 和它的提示机制),因为几乎所有的telnet服务器都有不以换行符结尾的提示。
MUD 通常具有非标准的“提示”,并且在游戏过程中会有所不同;我管理的 MUD 有一个“您的选择:”提示作为其登录名 [它不仅仅是用于用户名],并且许多游戏功能都提供了替代提示。所以我怀疑你在寻找跨平台 Telnet 库时需要牢记这一点!