lsliupei
2014-12-13 09:30
采纳率: 100%
浏览 3.7k

C# telnet登陆到远端 获取键入命令的返回值

用C#通过telnet登陆到远端交换机上,键入命令后并获取返回值到本地,需要如何操作?
是自己写个telnet类吗?求具体方法

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 微wx笑 2014-12-13 10:56
    已采纳

    参考以下代码:

     // Define the namespaces used by this sample.
    using System;
    using System.Text;
    using System.IO;
    using System.Diagnostics;
    using System.Threading;
    using System.ComponentModel;
    
    namespace ProcessAsyncStreamSamples
    {
        class SortOutputRedirection
        {
            // Define static variables shared by class methods.
            private static StringBuilder sortOutput = null;
            private static int numOutputLines = 0;
    
            public static void SortInputListText()
            {
                // Initialize the process and its StartInfo properties.
                // The sort command is a console application that
                // reads and sorts text input.
    
                Process sortProcess;
                sortProcess = new Process();
                sortProcess.StartInfo.FileName = "Sort.exe";
    
                // Set UseShellExecute to false for redirection.
                sortProcess.StartInfo.UseShellExecute = false;
    
                // Redirect the standard output of the sort command.  
                // This stream is read asynchronously using an event handler.
                sortProcess.StartInfo.RedirectStandardOutput = true;
                sortOutput = new StringBuilder("");
    
                // Set our event handler to asynchronously read the sort output.
                sortProcess.OutputDataReceived += new DataReceivedEventHandler(SortOutputHandler);
    
                // Redirect standard input as well.  This stream
                // is used synchronously.
                sortProcess.StartInfo.RedirectStandardInput = true;
    
                // Start the process.
                sortProcess.Start();
    
                // Use a stream writer to synchronously write the sort input.
                StreamWriter sortStreamWriter = sortProcess.StandardInput;
    
                // Start the asynchronous read of the sort output stream.
                sortProcess.BeginOutputReadLine();
    
                // Prompt the user for input text lines.  Write each 
                // line to the redirected input stream of the sort command.
                Console.WriteLine("Ready to sort up to 50 lines of text");
    
                String inputText;
                int numInputLines = 0;
                do 
                {
                    Console.WriteLine("Enter a text line (or press the Enter key to stop):");
    
                    inputText = Console.ReadLine();
                    if (!String.IsNullOrEmpty(inputText))
                    {
                        numInputLines ++;
                        sortStreamWriter.WriteLine(inputText);
                    }
                }
                while (!String.IsNullOrEmpty(inputText) && (numInputLines < 50));
                Console.WriteLine("<end of input stream>");
                Console.WriteLine();
    
                // End the input stream to the sort command.
                sortStreamWriter.Close();
    
                // Wait for the sort process to write the sorted text lines.
                sortProcess.WaitForExit();
    
                if (numOutputLines > 0)
                {
                    // Write the formatted and sorted output to the console.
                    Console.WriteLine(" Sort results = {0} sorted text line(s) ", 
                        numOutputLines);
                    Console.WriteLine("----------");
                    Console.WriteLine(sortOutput);
                }
                else 
                {
                    Console.WriteLine(" No input lines were sorted.");
                }
    
                sortProcess.Close();
            }
    
            private static void SortOutputHandler(object sendingProcess, 
                DataReceivedEventArgs outLine)
            {
                // Collect the sort command output.
                if (!String.IsNullOrEmpty(outLine.Data))
                {
                    numOutputLines++;
    
                    // Add the text to the collected output.
                    sortOutput.Append(Environment.NewLine + 
                        "[" + numOutputLines.ToString() + "] - " + outLine.Data);
                }
            }
        }
    }
    
    
    评论
    解决 无用
    打赏 举报
  • 查看更多回答(2条)

相关推荐 更多相似问题