Publié le

c# ipc 통신 예제

일반적으로 응용 프로그램은 클라이언트 또는 서버로 분류된 IPC를 사용할 수 있습니다. 클라이언트는 다른 응용 프로그램이나 프로세스에서 서비스를 요청하는 응용 프로그램 또는 프로세스입니다. 서버는 클라이언트 요청에 응답하는 응용 프로그램 또는 프로세스입니다. 대부분의 응용 프로그램은 상황에 따라 클라이언트와 서버 역할을 합니다. 예를 들어 워드 프로세싱 응용 프로그램은 서버 역할을 하는 스프레드시트 응용 프로그램에서 제조 비용에 대한 요약 테이블을 요청할 때 클라이언트 역할을 할 수 있습니다. 스프레드시트 응용 프로그램은 자동화된 인벤토리 제어 응용 프로그램에서 최신 인벤토리 수준을 요청하는 클라이언트 역할을 할 수 있습니다. 어떤 우아하고 완전한 요약, 축하합니다. 전체 통신을 암호화하는 오버헤드 없이 최소한 “어느 정도” 안전한 .NET CORE를 사용하여 휴대용 IPC 솔루션을 빌드하기만 하면 됩니다. 매우 도움이 작업, 감사합니다. 양방향 통신을 위한 파이프에는 익명 파이프와 명명된 파이프의 두 가지 유형이 있습니다. 익명 파이프를 사용하면 관련 프로세스가 서로 정보를 전송할 수 있습니다. 일반적으로 익명 파이프는 상위 프로세스와 데이터를 교환할 수 있도록 자식 프로세스의 표준 입력 또는 출력을 리디렉션하는 데 사용됩니다.

양방향으로 데이터를 교환하려면(이중 작업) 두 개의 익명 파이프를 만들어야 합니다. 상위 프로세스는 쓰기 핸들을 사용하여 한 파이프에 데이터를 쓰고 자식 프로세스는 읽기 핸들을 사용하여 해당 파이프의 데이터를 읽습니다. 마찬가지로 자식 프로세스는 다른 파이프에 데이터를 기록하고 상위 프로세스는 데이터를 읽습니다. 익명 파이프는 네트워크를 통해 사용할 수 없으며 관련 없는 프로세스 간에 사용할 수도 없습니다. 다음 예제에서는 NamedPipeClientStream 클래스를 사용하는 클라이언트 프로세스를 보여 주습니다. 클라이언트는 서버 프로세스에 연결하여 파일 이름을 서버에 보냅니다. 이 예제에서는 가장을 사용하므로 클라이언트 응용 프로그램을 실행하는 ID에는 파일에 액세스할 수 있는 권한이 있어야 합니다. 그런 다음 서버는 파일의 내용을 클라이언트로 다시 보냅니다. 그러면 파일 내용이 콘솔에 표시됩니다. 다음 예제에서는 NamedPipeServerStream 클래스를 사용 하 여 명명 된 파이프를 만드는 방법을 보여 줍니다. 이 예제에서는 서버 프로세스에서 4개의 스레드를 만듭니다.

각 스레드는 클라이언트 연결을 수락할 수 있습니다. 그런 다음 연결된 클라이언트 프로세스에서 서버에 파일 이름을 제공합니다. 클라이언트에 충분한 사용 권한이 있는 경우 서버 프로세스는 파일을 열고 해당 내용을 클라이언트로 다시 보냅니다. 동일한 컴퓨터에서 서로 다른 프로세스 간에 IPC(프로세스 간 통신)를 수행하는 작은 .NET 라이브러리입니다. Windows 운영 체제는 응용 프로그램 간의 통신 및 데이터 공유를 용이하게 하는 메커니즘을 제공합니다. 전체적으로 이러한 메커니즘에 의해 활성화된 활동을 IPC(프로세스 간 통신)라고 합니다. IPC의 일부 형태는 여러 전문 프로세스 간의 노동 분배를 용이하게합니다. IPC의 다른 형태는 네트워크에 있는 컴퓨터 간의 노동 분배를 용이하게 합니다. 클라이언트와 서버 모두에서 시작할 수 있는 서버와 클라이언트 간의 양방향 통신을 원하는 경우 클라이언트에서 위의 서버 코드와 서버의 클라이언트 코드를 사용하기만 하면 됩니다(물론 다른 포트 사용).