Named Pipe를 보여주는 간단한 C# 콘솔 애플리케이션
명명된 파이프는 단일 시스템 내에서 IPC(프로세스 간 통신)를 위한 강력한 방법을 제공합니다. 이 예에서는 명명된 파이프를 사용하여 두 프로세스가 메시지를 교환하는 기본 C# 콘솔 애플리케이션을 보여줍니다.
애플리케이션 구조
애플리케이션은 두 가지 프로그램으로 구성됩니다. 하나는 메시지를 보내 통신을 시작하고 다른 하나는 응답합니다. 지속적인 메시지 교환을 위해 둘 다 동시에 실행됩니다.
코드 구현
다음 C# 코드는 구현을 보여줍니다.
<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>
운영 흐름
클라이언트는 명명된 파이프 "PipesOfPiece"에 연결하여 서버와의 연결을 설정합니다. 메시지는 StreamWriter
을 통해 전송되고 StreamReader
을 통해 수신됩니다. 이 예에서 서버는 수신된 메시지를 클라이언트에 다시 보내기 전에 취소하여 간단한 통신 패턴을 보여줍니다. 그러면 클라이언트는 반전된 메시지를 표시합니다.
위 내용은 명명된 파이프는 간단한 C# 콘솔 애플리케이션에서 프로세스 간 통신을 어떻게 촉진할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!