C# bi-directional IPC over stdin and stdout

巧了我就是萌 提交于 2019-12-10 04:13:41

问题


How can I connect two C# processes so they can communicate with each other over stdin and stdout?

Like this:

Process A --> stdout A --> stdin B ---> Process B

Process A <-- stdin A <-- stdout B <--- Process B


回答1:


using System;
using System.Diagnostics;

class Program
{
  static void Main(string[] args)
  {
    string name;
    if (args.Length > 0 && args[0] == "slave")
    {
      name = "slave";
    }
    else
    {
      name = "master";
      var info = new ProcessStartInfo();
      info.FileName = "BidirConsole.exe";
      info.Arguments = "slave";
      info.RedirectStandardInput = true;
      info.RedirectStandardOutput = true;
      info.UseShellExecute = false;
      var other = Process.Start(info);
      Console.SetIn(other.StandardOutput);
      Console.SetOut(other.StandardInput);
    }
    Console.WriteLine(name + " started.");
    while (true)
    {
      var incoming = Console.ReadLine();
      var outgoing = name + " got : " + incoming;
      Console.WriteLine(outgoing);
      System.Threading.Thread.Sleep(100);
    }
  }
}


来源:https://stackoverflow.com/questions/922233/c-sharp-bi-directional-ipc-over-stdin-and-stdout

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!