我正在尋找啓動一個MUD client應用程序,它連接到託管在telnet服務器上的MUD。唯一對我很重要的是它可以在任何操作系統上輕鬆高效地運行。除了這個要求,我並不是真的以任何語言出售。跨OS OS Telnet客戶端的Telnet lib和語言選擇?
所以我正在尋找一個可以免費使用的telnet客戶端庫,我可以在其中爲我的應用程序提供基礎,因此我不必處理協議的詳細信息。
我正在尋找啓動一個MUD client應用程序,它連接到託管在telnet服務器上的MUD。唯一對我很重要的是它可以在任何操作系統上輕鬆高效地運行。除了這個要求,我並不是真的以任何語言出售。跨OS OS Telnet客戶端的Telnet lib和語言選擇?
所以我正在尋找一個可以免費使用的telnet客戶端庫,我可以在其中爲我的應用程序提供基礎,因此我不必處理協議的詳細信息。
我總是會考慮Twisted這種事情(Python)。
美麗之處在於,如果您以後決定將其交換爲SSH或比telnet更安全的任何東西,您都可以輕而易舉地完成任務。
對於我所有的MUD編程,我都是從頭開始使用RFC創建自己的例程。
如果你想避免我的一些痛苦,我將它包裝成一個相當簡單的C#類,它可以正確處理Telnet。如果你想仔細閱讀,你可以查看它here。
此代碼已被複制/粘貼並運行在Windows和Linux上(通過Mono)在幾個獨立的項目上,並且工作非常好。
扭曲,扭曲,扭曲!
要使用telnet,請參閱包twisted.conch.telnet
。它有一些斯巴達API docs,但使用它的真實信息來自searching on Google Code Search,如this nugget從grailmud - 一個MUD服務器。
pmc(http://sourceforge.net/projects/perlmudclient/)是一個嘗試做到這一點。上週我花了一些時間去研究它;它使用Net :: Telnet的較早修改版本來完成其連接工作。
我的問題是,當服務器發送部分行時,Net :: Telnet似乎具有阻止接口,即未被換行符終止的行。它有兩個支持此功能的特性(waitfor及其提示機制),因爲幾乎所有的telnet服務器都有不以換行符終止的提示。
MUD經常有非標準的「提示」,並且在遊戲過程中有所不同;我管理的MUD有一個「你的選擇:」提示作爲它的登錄名[它不僅僅是用戶名],許多遊戲功能提供了替代提示。所以我懷疑你在尋找跨平臺的Telnet庫時需要記住這一點!
我真的找不到任何使用Twisted使用Telnet的好例子,對嗎? – Ray 2008-11-26 19:37:01
這就像使用任何其他扭曲的「協議」。你將不得不看例子頁面:http:// twistedmatrix。COM /項目/核心/文檔/ HOWTO/clients.html。您將使用的協議是twisted.conch.telnet.Telnet(不是EchoProtocol)。 – 2008-11-26 19:43:59