Eine einfache C#-Konsolenanwendung zur Demonstration benannter Pipes
Named Pipes bieten eine robuste Methode für die Interprozesskommunikation (IPC) innerhalb eines einzelnen Systems. Dieses Beispiel zeigt eine einfache C#-Konsolenanwendung, bei der zwei Prozesse Nachrichten über benannte Pipes austauschen.
Bewerbungsstruktur
Die Anwendung besteht aus zwei Programmen: Das eine initiiert die Kommunikation, indem es eine Nachricht an das zweite sendet, das dann antwortet. Beide laufen gleichzeitig für einen kontinuierlichen Nachrichtenaustausch.
Code-Implementierung
Der folgende C#-Code demonstriert die Implementierung:
<code class="language-csharp">using System; using System.IO; using System.IO.Pipes; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleAppIPC { class Program { static void Main(string[] args) { // Initiate the server process StartServer(); Task.Delay(1000).Wait(); // Brief delay to ensure server is ready // Client-side connection and communication using (var client = new NamedPipeClientStream("PipesOfPiece")) { client.Connect(); using (var reader = new StreamReader(client)) using (var writer = new StreamWriter(client)) { while (true) { string input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; writer.WriteLine(input); writer.Flush(); Console.WriteLine(reader.ReadLine()); } } } } static void StartServer() { Task.Factory.StartNew(() => { using (var server = new NamedPipeServerStream("PipesOfPiece")) { server.WaitForConnection(); using (var reader = new StreamReader(server)) using (var writer = new StreamWriter(server)) { while (true) { string line = reader.ReadLine(); writer.WriteLine(string.Join("", line.Reverse())); writer.Flush(); } } } }); } } }</code>
Betriebsablauf
Der Client stellt eine Verbindung zur benannten Pipe „PipesOfPiece“ her und stellt eine Verbindung mit dem Server her. Nachrichten werden über ein StreamWriter
gesendet und über ein StreamReader
empfangen. In diesem Beispiel kehrt der Server die empfangene Nachricht um, bevor er sie an den Client zurücksendet, was ein einfaches Kommunikationsmuster veranschaulicht. Der Client zeigt dann die umgekehrte Meldung an.
Das obige ist der detaillierte Inhalt vonWie können Named Pipes die Kommunikation zwischen Prozessen in einer einfachen C#-Konsolenanwendung erleichtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!