2009-05-28 23 views
5

¿Cómo puedo conectar dos procesos C# para que puedan comunicarse entre sí a través de stdin y stdout?C# bidireccional IPC sobre stdin y stdout

De esta manera:

Proceso A -> A la salida estándar -> entrada estándar B ---> Proceso B

Proceso A < - Una entrada estándar < - stdout B < --- Proceso B

Respuesta

4
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); 
    } 
    } 
} 
Cuestiones relacionadas