Как я могу открыть соединение Telnet и выполнить несколько команд в C # - PullRequest
13 голосов
/ 27 июня 2009

Это просто? Есть ли у кого-нибудь хорошие примеры? Все мои поиски в Google возвращают информацию о том, как сделать клиентов Telnet в dotNet, но это для меня излишне. Я пытаюсь сделать это в C #.

Спасибо!

Ответы [ 2 ]

12 голосов
/ 27 июня 2009

C # 2.0 и Telnet - не так больно, как кажется
http://geekswithblogs.net/bigpapa/archive/2007/10/08/C-2.0-and-Telnet---Not-As-Painful-As-It.aspx

4 голосов
/ 02 сентября 2010

Для простых задач (таких как подключение к специализированному аппаратному устройству с telnet-подобным интерфейсом) подключения через сокет и простой отправки и получения текстовых команд может быть достаточно.

Если вы хотите подключиться к реальному серверу telnet, вам может потребоваться обработать escape-последовательности telnet, эмулировать лицевой терминал, обработать интерактивные команды и т. Д. Используя некоторый уже протестированный код, такой как Минималистичная библиотека Telnet из CodeProject (бесплатно ) или какая-либо коммерческая библиотека Telnet / Terminal Emulator (например, наша Rebex Telnet ) может сэкономить вам время.

Следующий код (взятый из этого 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();
...