如何将控制台C#程序的输入和输出重定向到套接字?我需要从另一个进程中启动程序,并使其接收输入并将输出发送到在网络中的另一台计算机上运行的另一个进程。我要做的是以编程方式在另一个工作站上运行一个应用程序,同时从当前终端控制它。
答案 0 :(得分:3)
使用System.Diagnostics.Process
类来运行控制台程序。
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
然后您可以将任何流(包括网络流)挂钩到process.StandardInput
和process.StandardOutput
。
答案 1 :(得分:1)
您需要设置ProcessStartInfo.RedirectStandardInput和RedirectStandardOutput。这使您可以提供用于控制台应用程序的标准输入/输出的流。
然后,您可以将进程流中的数据复制到套接字的流中。
答案 2 :(得分:0)
为什么要重定向?
如果这是您的应用程序的核心功能,那么您应该使用代码使用的Stream
个变量,而不是依赖Console.Out
等。
可以从套接字,文件中打开流,无论代码是什么。