クロスOS telnetクライアントのTelnetライブラリと言語の選択?
質問
ホストされているMUDに接続する MUDクライアントアプリケーションを起動したいtelnetサーバー上。私にとって重要なことは、すべてのOSで簡単かつ効率的に実行できることです。その要件は別として、私は実際にどの言語でも販売されていません。
したがって、アプリケーションのベースにできる無料のtelnetクライアントライブラリを探しているので、プロトコルの詳細をあまり扱う必要がありません。
解決
この種のもの(Python)では、常にツイストを検討します。
その美しさは、後でSSHやtelnetより安全なものに交換することに決めた場合、ほとんど苦痛なくできることです。
他のヒント
ツイスト、ツイスト、ツイスト!
telnetを使用するには、パッケージ twisted.conch.telnet
を参照してください。質素な APIドキュメントがありますが、使用に関する情報は、 Google Code Searchでの検索から取得します。 このナゲット( grailmud -MUDサーバー。
すべてのMUDプログラミングで、RFCを使用してゼロから独自のルーチンを作成しました。
苦痛を避けたい場合は、Telnetを適切に処理するかなり単純なC#クラスにまとめました。閲覧したい場合は、で確認できます。こちら。
このコードはコピー/貼り付けされ、WindowsおよびLinux(Mono経由)でいくつかの個別のプロジェクトで実行され、非常に良好に動作します。
CPAN <にtelnetインターフェイスがあります Perlが好きなら。それは非常に最小限ですが、仕事を完了する必要があります。
[編集] libcurl もtelnetを実行できるはずですが、その例は見つかりませんでした。
pmc( http://sourceforge.net/projects/perlmudclient/ )が試行されましたまさにこれを行うために。私は先週のいくつかをそれを経験しました。 Net :: Telnetの古い修正バージョンを使用して、接続作業を行います。
私の問題は、サーバーによって部分的な行、つまり改行で終了していない行が送信されたときに、Net :: Telnetがブロッキングインターフェイスを持っているように見えることです。ほとんどすべての telnet サーバーには改行で終わらないプロンプトがあるため、これをサポートする2つの機能(waitforとそのプロンプトメカニズム)があります。
MUDにはしばしば「プロンプト」があります。これらは非標準であり、ゲームの過程で異なります。私が管理するMUDには&quot;あなたの選択:&quot;ログインとしてのプロンプト[ユーザー名だけではありません]、および多くのゲーム機能が代替プロンプトを提供します。そのため、クロスプラットフォームのTelnetライブラリを探しているときは、これを覚えておく必要があると思います!