【发布时间】:2009-11-05 19:43:21
【问题描述】:
如何将控制台 C# 程序的输入和输出重定向到套接字?我需要从另一个进程中启动程序,并使其接收输入并将输出发送到网络中另一台计算机上运行的另一个进程。我想要做的是以编程方式在另一个站上运行应用程序,同时从当前终端控制它。
【问题讨论】:
-
netcat可能有帮助:netcat.sourceforge.net
标签: c# sockets redirect console
如何将控制台 C# 程序的输入和输出重定向到套接字?我需要从另一个进程中启动程序,并使其接收输入并将输出发送到网络中另一台计算机上运行的另一个进程。我想要做的是以编程方式在另一个站上运行应用程序,同时从当前终端控制它。
【问题讨论】:
netcat 可能有帮助:netcat.sourceforge.net
标签: c# sockets redirect console
使用System.Diagnostics.Process 类来运行您的控制台程序。
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
然后您可以将任何流(包括网络流)挂钩到process.StandardInput 和process.StandardOutput。
【讨论】:
您需要设置ProcessStartInfo.RedirectStandardInput 和RedirectStandardOutput。这使您可以提供用于控制台应用程序的标准输入/输出的流。
然后您可以将数据从流程流复制到套接字流和从套接字流复制。
【讨论】:
为什么要重定向?
如果这是您的应用程序的核心功能,那么您应该拥有代码使用的 Stream 变量,而不是依赖于 Console.Out 等。
流可以从套接字、文件、代码中的任何权利打开。
【讨论】: