Heim > Backend-Entwicklung > C++ > Wie können Named Pipes die Kommunikation zwischen Prozessen in einer einfachen Konsolenanwendung erleichtern?

Wie können Named Pipes die Kommunikation zwischen Prozessen in einer einfachen Konsolenanwendung erleichtern?

Susan Sarandon
Freigeben: 2025-01-14 12:30:44
Original
113 Leute haben es durchsucht

How Can Named Pipes Facilitate Inter-Process Communication in a Simple Console Application?

Eine einfache Konsolenanwendung zur Demonstration von Named Pipe IPC

Named Pipes bieten eine robuste Methode für die Interprozesskommunikation (IPC) auf einem einzelnen Computer. Dieses Beispiel veranschaulicht eine einfache IPC-Verbindung mithilfe benannter Pipes.

Programm 1 fungiert als Absender der Nachricht, während Programm 2 die Nachricht empfängt. Programm 1 sendet „Hello World“ und Programm 2 antwortet mit „Roger That.“

Server (Programm 2):

<code class="language-csharp">using System;
using System.IO.Pipes;

namespace ServerApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string pipeName = "MyPipe"; // Named pipe identifier
            using (var server = new NamedPipeServerStream(pipeName))
            {
                server.WaitForConnection();
                Console.WriteLine("Client connected.");

                using (var reader = new StreamReader(server))
                using (var writer = new StreamWriter(server))
                {
                    string message = reader.ReadLine();
                    Console.WriteLine($"Received: {message}");
                    writer.WriteLine("Roger That");
                    writer.Flush();
                }
            }
        }
    }
}</code>
Nach dem Login kopieren

Kunde (Programm 1):

<code class="language-csharp">using System;
using System.IO.Pipes;

namespace ClientApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string pipeName = "MyPipe"; // Must match server's pipe name
            using (var client = new NamedPipeClientStream(pipeName))
            {
                client.Connect();
                Console.WriteLine("Connected to server.");

                using (var reader = new StreamReader(client))
                using (var writer = new StreamWriter(client))
                {
                    writer.WriteLine("Hello World");
                    writer.Flush();
                    Console.WriteLine("Sent: Hello World");
                    string response = reader.ReadLine();
                    Console.WriteLine($"Received: {response}");
                }
            }
        }
    }
}</code>
Nach dem Login kopieren

Zum Ausführen: Starten Sie zuerst ServerApp.exe und führen Sie dann ClientApp.exe aus. Dies demonstriert die Grundprinzipien der Verwendung benannter Pipes für die einfache Kommunikation zwischen Prozessen. Denken Sie daran, pipeName bei Bedarf anzupassen.

Das obige ist der detaillierte Inhalt vonWie können Named Pipes die Kommunikation zwischen Prozessen in einer einfachen Konsolenanwendung erleichtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage