Home > Backend Development > C++ > How Can Named Pipes Facilitate Inter-Process Communication in a Simple Console Application?

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

Susan Sarandon
Release: 2025-01-14 12:30:44
Original
113 people have browsed it

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

A Simple Console Application Demonstrating Named Pipe IPC

Named pipes offer a robust method for inter-process communication (IPC) on a single machine. This example illustrates a basic IPC connection using named pipes.

Program 1 acts as the message sender, while Program 2 receives the message. Program 1 sends "Hello World," and Program 2 replies with "Roger That."

Server (Program 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>
Copy after login

Client (Program 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>
Copy after login

To run: Start the ServerApp.exe first, then run ClientApp.exe. This demonstrates the fundamental principles of using named pipes for simple inter-process communication. Remember to adjust the pipeName if necessary.

The above is the detailed content of How Can Named Pipes Facilitate Inter-Process Communication in a Simple Console Application?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template