2009-05-28 20 views
5

İki C# işlemlerini, stdin ve stdout üzerinden birbirleriyle iletişim kurabilmeleri için nasıl bağlarım? > Stdout'u A - -> Stdin B ---> İşlem BC# iki yönlü IPL stdin ve stdout üzerinde

Süreç A < - stdin'nin A < - stdout'u B < --- Süreç

Proses A: Bunun gibi

B

cevap

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); 
    } 
    } 
} 
İlgili konular