Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Paip Dinamakan Memudahkan Komunikasi Antara Proses dalam Python dan C#?

Bagaimanakah Paip Dinamakan Memudahkan Komunikasi Antara Proses dalam Python dan C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-14 12:46:15726semak imbas

How Can Named Pipes Facilitate Interprocess Communication in Python and C#?

Aplikasi Ujian IPC Mudah Menggunakan Paip Dinamakan

Paip bernama menyediakan kaedah yang mantap untuk komunikasi antara proses (IPC), membolehkan pertukaran data yang cekap antara program yang berbeza. Contoh ini menunjukkan aplikasi ujian asas di mana satu proses menghantar mesej dan menerima balasan.

Pelaksanaan Python

Kod Python menggunakan modul multiprocessing untuk mencipta proses penghantar dan penerima.

Proses Pengirim:

<code class="language-python">import multiprocessing

def sender():
    pipe_in, pipe_out = multiprocessing.Pipe()
    p = multiprocessing.Process(target=receiver, args=(pipe_in,))
    p.start()
    pipe_out.send("Hello from Python")
    p.join()
</code>

Proses Penerima:

<code class="language-python">def receiver(pipe_in):
    message = pipe_in.recv()
    print(message)  # Output: Hello from Python
    pipe_in.send("Acknowledged from Python")</code>

Pelaksanaan C#

Kod C# menggunakan pelanggan paip dan strim pelayan yang dinamakan untuk mekanisme IPC.

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

class Program
{
    static void Main()
    {
        StartServer();
        Task.Delay(1000).Wait(); // Allow server to start

        // Client
        using (var client = new NamedPipeClientStream("PipesOfPeace"))
        {
            client.Connect();
            using (StreamWriter writer = new StreamWriter(client))
            {
                writer.WriteLine("Hello from C#");
                writer.Flush();
            }

            using (StreamReader reader = new StreamReader(client))
            {
                string response = reader.ReadLine(); // Reads "Acknowledged from C#"
                Console.WriteLine(response);
            }
        }
    }

    static void StartServer()
    {
        Task.Factory.StartNew(() =>
        {
            using (var server = new NamedPipeServerStream("PipesOfPeace"))
            {
                server.WaitForConnection();
                using (StreamReader reader = new StreamReader(server))
                {
                    string message = reader.ReadLine(); // Reads "Hello from C#"
                    Console.WriteLine(message);
                }

                using (StreamWriter writer = new StreamWriter(server))
                {
                    writer.WriteLine("Acknowledged from C#");
                    writer.Flush();
                }
            }
        });
    }
}</code>

Kedua-dua contoh menunjukkan prinsip asas menggunakan paip bernama untuk komunikasi antara proses. Mesej dihantar, diterima dan balasan dihantar semula, menggambarkan penyelesaian IPC yang mudah tetapi berkesan.

Atas ialah kandungan terperinci Bagaimanakah Paip Dinamakan Memudahkan Komunikasi Antara Proses dalam Python dan C#?. 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