用C#通过telnet登陆到远端交换机上,键入命令后并获取返回值到本地,需要如何操作?
是自己写个telnet类吗?求具体方法
3条回答 默认 最新
关注 参考以下代码:
// 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); } } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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组播的数据