您好,登錄后才能下訂單哦!
在C#中,可以使用命名管道(Named Pipe)實現多進程間的通信
下面是一個簡單的示例,展示了如何在C#中使用命名管道進行多進程通信:
using System;
using System.IO.Pipes;
using System.Threading;
class Server
{
static void Main()
{
// 創建一個命名管道服務器
using (NamedPipeServerStream server = new NamedPipeServerStream("MyPipe"))
{
Console.WriteLine("等待客戶端連接...");
server.WaitForConnection();
Console.WriteLine("客戶端已連接");
// 讀取客戶端發送的消息
byte[] buffer = new byte[1024];
int bytesRead = server.Read(buffer, 0, buffer.Length);
string message = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine($"收到消息: {message}");
// 關閉連接
server.Close();
}
}
}
using System;
using System.IO.Pipes;
using System.Text;
class Client
{
static void Main()
{
// 創建一個命名管道客戶端
using (NamedPipeClientStream client = new NamedPipeClientStream(".", "MyPipe", PipeDirection.Out))
{
Console.WriteLine("連接到服務器...");
client.Connect();
Console.WriteLine("已連接到服務器");
// 向服務器發送消息
string message = "Hello, Server!";
byte[] buffer = Encoding.UTF8.GetBytes(message);
client.Write(buffer, 0, buffer.Length);
Console.WriteLine($"發送消息: {message}");
// 關閉連接
client.Close();
}
}
}
要運行此示例,請將上述代碼分別保存為兩個不同的C#項目(例如,Server和Client),并確保它們都引用了System.IO.Pipes命名空間。然后,分別編譯并運行這兩個項目。你應該會看到服務器和客戶端之間的消息傳遞。
注意:命名管道是一種操作系統級別的通信機制,因此它們可以在不同的進程之間進行通信,而不僅僅是在同一個應用程序中。在本示例中,我們使用了.NET Framework的System.IO.Pipes命名空間來實現命名管道通信。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。