web-dev-qa-db-ja.com

Telnet接続を開いてC#でいくつかのコマンドを実行するにはどうすればよいですか?

これは簡単ですか?良い例はありますか?私のすべてのグーグル検索は、dotNetでtelnetクライアントを作成する方法に関する項目を返しますが、これは私にとってやり過ぎです。私はこれをC#で行おうとしています。

ありがとう!

13
Matt
12
Robert Harvey

単純なタスク(telnetのようなインターフェイスを備えた専用ハードウェアデバイスへの接続など)の場合、ソケットを介して接続し、テキストコマンドを送受信するだけで十分な場合があります。

実際のtelnetサーバーに接続する場合は、telnetエスケープシーケンスの処理、端末エミュレーションの処理、対話型コマンドの処理などが必要になる場合があります。 CodeProjectの最小のTelnetライブラリ (無料)または一部の商用Telnet /ターミナルエミュレータライブラリ( Rebex Telnet など)を使用すると、時間を節約できる場合があります。

次のコード( this url から取得)は、その使用方法を示しています。

// create the client 
Telnet client = new Telnet("servername");

// start the Shell to send commands and read responses 
Shell shell = client.StartShell();

// set the Prompt of the remote server's Shell first 
Shell.Prompt = "servername# ";

// read a welcome message 
string welcome = Shell.ReadAll();

// display welcome message 
Console.WriteLine(welcome);

// send the 'df' command 
Shell.SendCommand("df");

// read all response, effectively waiting for the command to end 
string response = Shell.ReadAll();

// display the output 
Console.WriteLine("Disk usage info:");
Console.WriteLine(response);

// close the Shell 
Shell.Close();
4
Martin Vobr