mfc ipc 통신 예제

아래 그림에서 두 통신 모델은 대비됩니다. OLE를 사용하는 응용 프로그램은 복합 문서, 즉 다양한 응용 프로그램의 데이터로 구성된 문서를 관리합니다. OLE는 응용 프로그램이 데이터 편집을 위해 다른 응용 프로그램을 쉽게 호출할 수 있도록 하는 서비스를 제공합니다. 예를 들어 OLE를 사용하는 워드 프로세서는 스프레드시트에서 그래프를 포함할 수 있습니다. 사용자는 편집을 위해 포함된 차트를 선택하여 워드 프로세서 내에서 스프레드시트를 자동으로 시작할 수 있습니다. OLE는 스프레드시트를 시작하고 편집을 위해 그래프를 제시합니다. 사용자가 스프레드시트를 종료하면 원래 워드 프로세서 문서에서 그래프가 업데이트됩니다. 스프레드시트가 워드 프로세서의 확장인 것처럼 보입니다. 링크에는 일시적으로 상주할 수 있는 메시지 수를 결정하는 일부 용량이 있으며, 모든 링크에는 0용량 또는 바인딩된 용량 또는 무한 용량일 수 있는 큐가 연결되어 있습니다. 용량이 0이면 보낸 사람이 보낸 사람이 메시지를 받았다는 것을 발신자에게 알릴 때까지 기다립니다. 용량이 0이 아닌 경우 프로세스는 송신 작업 후에 메시지가 수신되었는지 여부를 알 수 없습니다. 이를 위해 보낸 사람은 수신자에게 명시적으로 통신해야 합니다.

링크의 구현은 상황에 따라 달라지며, 직접 통신 링크 또는 인-지향 통신 링크일 수 있다. 직접 통신 링크는 프로세스가 통신에 특정 프로세스 식별자를 사용하지만 미리 보낸 자를 식별하기 어려울 때 구현됩니다. 예: 인쇄 서버입니다. 인-지향 통신은 메시지 큐로 구성된 분쇄기 사서함(포트)을 통해 수행됩니다. 보낸 사람은 메시지를 사서함에 보관하고 수신자가 메시지를 선택합니다. 독립적인 프로세스는 다른 프로세스의 실행에 의해 영향을 받지 않지만 협력 프로세스는 다른 실행 프로세스의 영향을 받을 수 있습니다. 독립적으로 실행되는 프로세스가 매우 효율적이지만 실질적으로 실행될 것이라고 생각할 수 있지만, 연동 적 특성을 통해 컴퓨팅 속도, 편의성 및 모듈성을 높이는 데 사용할 수 있는 상황이 많이 있습니다. 프로세스 간 통신(IPC)은 프로세스가 서로 통신하고 작업을 동기화할 수 있는 메커니즘입니다. 이러한 프로세스 간의 통신은 이들 프로세스 간의 협력 방법으로 볼 수 있습니다. 프로세스는 다음 두 가지 방법을 사용하여 서로 통신할 수 있습니다. 먼저 공유 메모리 통신 방법을 설명한 다음 메시지 전달에 대해 설명합니다. 공유 메모리를 사용하는 프로세스 간의 통신에는 일부 변수를 공유하는 프로세스가 필요하며 프로그래머가 이를 구현하는 방법에 따라 완전히 달라집니다.

공유 메모리를 사용하는 통신의 한 가지 방법은 다음과 같이 상상할 수 있습니다: process1 및 process2가 동시에 실행되고 일부 리소스를 공유하거나 다른 프로세스의 일부 정보를 사용하는 경우 process1은 특정 계산에 대한 정보를 생성합니다. 또는 사용 중인 리소스를 공유 메모리에 레코드로 유지합니다. process2가 공유 정보를 사용해야 하는 경우 공유 메모리에 저장된 레코드를 체크 인하고 process1에서 생성된 정보를 기록하고 그에 따라 조치를 취합니다. 프로세스는 공유 메모리를 사용하여 다른 프로세스의 레코드로 정보를 추출하고 특정 정보를 다른 프로세스로 전달할 수 있습니다. 공유 메모리 메서드를 사용하여 프로세스 간의 통신 예제를 살펴보겠습니다. 이 예제에서는 INVALID_HANDLE_VALUE를 사용 하 여 파일 매핑 개체를 만드는 명명 된 공유 메모리 서버, LocalHelloWorld를 보여 줍니다.