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
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
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);
}
}
}