Pipes wurden mit Windows NT in der Windows-Welt eingeführt. Mit dem .Net Framework 3.5 ist es möglich geworden, benannte Pipes direkt –ohne WCF- einzusetzen. Mit benannten Pipes ist es möglich, Daten zwischen zwei Prozessen, zum Beispiel zwischen zwei Anwendungen, auszutauschen.
Die Daten können dabei in beide Richtungen gleichzeitig gesendet und empfangen werden (Vollduplexbetrieb). Es ist möglich, Daten rechnerübergreifend in einem Netzwerk auszutauschen.
Die folgende Konsolenanwendung bildet den Server, der dazugehörige Client befindet sich unter dieser URL: http://dotnet-snippets.de/dns/interprozesskommunikation-ueber-benannte-pipes---client-SID1057.aspx
using System;
using System.IO;
using System.IO.Pipes;
namespace PipeServer
{
internal class Program
{
private static void Main()
{
using (var pipeServerStream = new NamedPipeServerStream("UniqueString"))
{
Console.WriteLine("Waiting for connection.");
pipeServerStream.WaitForConnection();
Console.WriteLine("Connected to client.");
using (var streamReader = new StreamReader(pipeServerStream))
{
while (true)
{
var data = streamReader.ReadLine();
if (data == null)
break;
Console.WriteLine("Received: " + data);
}
}
Console.WriteLine("Press any key to exit.");
Console.Read();
}
}
}
}
Kommentare zum Snippet