lsliupei 2014-12-13 01:30 采纳率: 100%
浏览 3799
已采纳

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

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

  • 写回答

3条回答 默认 最新

  • 微wx笑 Java领域优质创作者 2014-12-13 02: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条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥20 DNS服务器所在的国家不同与你的IP地址所在国家
  • ¥15 查询优化:A表100000行,B表2000 行,内存页大小只有20页,运行时3页,设计两个表等值连接的最简单的算法
  • ¥15 led数码显示控制(标签-流程图)
  • ¥20 为什么在复位后出现错误帧
  • ¥15 结果有了,想问一下这个具体怎么输入
  • ¥15 怎么修改鸿蒙app的UI及功能设计
  • ¥15 帮我利用jupyter 运行一个正确的代码
  • ¥15 如何使用Gephi软件和Python包中的GephiStreamer交互
  • ¥15 sqlite加密问题咨询
  • ¥15 appdesigner接收不到udp组播的数据