2009-05-28 6 views
5

Comment connecter deux processus C# afin qu'ils puissent communiquer entre eux via stdin et stdout?C# IPC bidirectionnel sur stdin et stdout

Comme ceci:

Processus A -> A stdout -> stdin B ---> Processus B

Processus A < - A stdin < - stdout B < --- Processus B

Répondre

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