跨服务器telnet客户端的Telnet lib和语言选择?

时间:2008-11-26 19:11:34

标签: client telnet mud

我正在寻找一个MUD client应用程序,它连接到telnet服务器上托管的MUD。对我来说唯一重要的是它可以在任何操作系统上轻松有效地运行。除了这个要求,我并没有真正以任何语言出售。

所以我正在寻找一个免费的telnet客户端库,我可以在其上建立我的应用程序,所以我不必过多地处理协议的细节。

6 个答案:

答案 0 :(得分:7)

我总是会考虑Twisted这种事情(Python)。

美丽的是,如果你以后决定将它换成SSH或者比telnet更安全的东西,那么你可以毫不费力。

答案 1 :(得分:3)

扭曲,扭曲,扭曲!

要使用telnet,请参阅包twisted.conch.telnet。它有一些斯巴达API docs,但使用它的真实信息来自searching on Google Code Search,例如来自this nuggetgrailmud - 一个MUD服务器。

答案 2 :(得分:2)

如果您喜欢Perl,CPAN中有一个telnet接口。这是非常小的,但它应该完成工作。

[编辑] libcurl也应该可以做telnet,虽然我找不到它的任何例子。

答案 3 :(得分:2)

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

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

此代码已在Windows和Linux(通过Mono)上的一些独立项目中进行了复制/粘贴和运行,效果非常好。

答案 4 :(得分:0)

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

我的问题是,当服务器发送部分行时,Net :: Telnet似乎有一个阻塞接口,即一条未被换行终止的行。它有两个支持此功能的功能(waitfor及其提示机制),因为几乎所有 telnet 服务器都有不是换行符的提示。

MUD通常具有非标准的“提示”并且随着游戏的进程而变化;我管理员的MUD有一个“你的选择:”提示作为其登录[它不仅仅是用户名],许多游戏功能提供了替代提示。因此,当您寻找跨平台的Telnet库时,我怀疑您需要牢记这一点!

答案 5 :(得分:0)

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