Maison >développement back-end >C++ >Comment les canaux nommés peuvent-ils faciliter la communication inter-processus dans une simple application console C# ?
Une application console C# simple démontrant les canaux nommés
Les canaux nommés offrent une méthode robuste de communication inter-processus (IPC) au sein d'un seul système. Cet exemple présente une application console C# de base dans laquelle deux processus échangent des messages à l'aide de canaux nommés.
Structure de candidature
L'application comprend deux programmes : l'un initie la communication en envoyant un message au second, qui répond ensuite. Les deux fonctionnent simultanément pour un échange continu de messages.
Mise en œuvre du code
Le code C# suivant illustre l'implémentation :
<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>
Flux opérationnel
Le client se connecte au canal nommé "PipesOfPièce", établissant une connexion avec le serveur. Les messages sont envoyés via un StreamWriter
et reçus via un StreamReader
. Dans cet exemple, le serveur inverse le message reçu avant de le renvoyer au client, illustrant un modèle de communication simple. Le client affiche alors le message inversé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!