Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Paip Dinamakan Boleh Memudahkan Komunikasi Antara Proses dalam Aplikasi Konsol C# Mudah?

Bagaimanakah Paip Dinamakan Boleh Memudahkan Komunikasi Antara Proses dalam Aplikasi Konsol C# Mudah?

Susan Sarandon
Susan Sarandonasal
2025-01-14 12:46:48622semak imbas

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

Aplikasi Konsol C# Mudah Menunjukkan Paip Bernama

Paip bernama menawarkan kaedah yang mantap untuk komunikasi antara proses (IPC) dalam satu sistem. Contoh ini mempamerkan aplikasi konsol C# asas di mana dua proses bertukar-tukar mesej menggunakan paip bernama.

Struktur Aplikasi

Aplikasi ini terdiri daripada dua program: satu memulakan komunikasi dengan menghantar mesej kepada yang kedua, yang kemudian bertindak balas. Kedua-duanya berjalan serentak untuk pertukaran mesej berterusan.

Pelaksanaan Kod

Kod C# berikut menunjukkan pelaksanaan:

<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>

Aliran Operasi

Pelanggan menyambung ke paip bernama "PipesOfPiece", mewujudkan sambungan dengan pelayan. Mesej dihantar melalui StreamWriter dan diterima menggunakan StreamReader. Dalam contoh ini, pelayan membalikkan mesej yang diterima sebelum menghantarnya kembali kepada klien, menggambarkan corak komunikasi yang mudah. Pelanggan kemudiannya memaparkan mesej terbalik.

Atas ialah kandungan terperinci Bagaimanakah Paip Dinamakan Boleh Memudahkan Komunikasi Antara Proses dalam Aplikasi Konsol C# Mudah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn