演示命名管道 IPC 的简单控制台应用程序
命名管道为单台机器上的进程间通信(IPC)提供了一种强大的方法。此示例说明了使用命名管道的基本 IPC 连接。
程序1充当消息发送者,而程序2接收消息。 程序 1 发送“Hello World”,程序 2 回复“Roger That”。
服务器(程序 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>
客户(方案 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>
运行:先启动ServerApp.exe
,然后运行ClientApp.exe
。这演示了使用命名管道进行简单进程间通信的基本原理。 如有必要,记得调整pipeName
。
以上是命名管道如何促进简单控制台应用程序中的进程间通信?的详细内容。更多信息请关注PHP中文网其他相关文章!