c++ ipc 통신 예제

.NET 원격 기능을 사용하면 응용 프로그램에서 네트워크에 연결된 다른 appdomain, 프로세스 또는 다른 컴퓨터를 포함하는 원격 경계에서 상호 연결할 수 있는 개체를 사용할 수 있습니다. .NET Remoting은 클라이언트 응용 프로그램에서 사용할 수 있는 사용 가능한 개체에 대한 참조를 만들어 로컬 개체인 것처럼 재생 가능한 개체를 인스턴스화하고 사용합니다. 그러나 실제 코드 실행은 서버 측에서 수행됩니다. TCP 스트림, HTTP 스트림 및 명명된 파이프를 포함하여 실제 전송 모드를 캡슐화하는 채널 개체에 대한 .NET Remoting 런타임으로 다시 공감가능한 개체에 대한 모든 요청이 프록시됩니다. 따라서 적절한 채널 개체를 인스턴스화하여 응용 프로그램을 다시 컴파일하지 않고도 다른 통신 프로토콜을 지원하는 .NET Remoting 응용 프로그램을 만들 수 있습니다. 런타임 자체는 클라이언트 및 서버 앱 도메인 에서 개체의 직렬화 및 마샬링 행위를 관리합니다. Mailslot은 로컬 컴퓨터 또는 인트라넷의 컴퓨터 간에 단방향 프로세스 간 통신을 위한 메커니즘입니다. 모든 클라이언트는 메일 슬롯에 메시지를 저장할 수 있습니다. 슬롯의 작성자, 즉 서버는 거기에 저장된 메시지를 검색합니다: 자식 및 상위 프로세스 모두 open()을 호출하여 파일을 열고 이전 예제와 동일한 방식으로 반환된 파이프 처리기를 처리할 수 있습니다. 양방향 통신을 위한 파이프에는 익명 파이프와 명명된 파이프의 두 가지 유형이 있습니다. 익명 파이프를 사용하면 관련 프로세스가 서로 정보를 전송할 수 있습니다.

일반적으로 익명 파이프는 상위 프로세스와 데이터를 교환할 수 있도록 자식 프로세스의 표준 입력 또는 출력을 리디렉션하는 데 사용됩니다. 양방향으로 데이터를 교환하려면(이중 작업) 두 개의 익명 파이프를 만들어야 합니다. 상위 프로세스는 쓰기 핸들을 사용하여 한 파이프에 데이터를 쓰고 자식 프로세스는 읽기 핸들을 사용하여 해당 파이프의 데이터를 읽습니다. 마찬가지로 자식 프로세스는 다른 파이프에 데이터를 기록하고 상위 프로세스는 데이터를 읽습니다. 익명 파이프는 네트워크를 통해 사용할 수 없으며 관련 없는 프로세스 간에 사용할 수도 없습니다. 네트워킹을 통신 수단으로 사용하는 응용 프로그램은 단일 시스템의 프로세스 또는 네트워크에 의해 연결된 다른 시스템의 프로세스 간에 통신할 수 있는 장점이 있습니다.