2012-04-08 3 views
2

최근에 저는 java와 C++ 사이의 통신에 가장 적합한 IPC 프로토콜을 찾아야했습니다.Java와 C++ 사이의 IPC 소켓을 사용하는 것이 장단점은 무엇입니까?

나는 이것을 위해 최상의 프로토콜을 찾기 위해 SO를 찾았습니다. 그래서 소켓이 가장 좋은 방법입니다. 그러나 소켓의 찬반에 대해서는 아무 것도 발견 할 수 없었습니다. 따라서이 프로토콜의 장점을 알고 싶습니다. 또한 다른 프로토콜과 소켓의 장점에 대해 알고 싶습니다.

내 두 응용 프로그램이 동일한 컴퓨터에서 실행되고있을 가능성이 큽니다.

업데이트 먼저 프로토콜을 선택하고 시스템 구성을 실행하도록 결정할 수 있습니다. 가장 좋은 IPC 방법은 정말 당신이 의사 소통의 유형에 따라

+0

다른 옵션은 무엇입니까? – dasblinkenlight

+0

은 메시징이거나 심지어 파일을 사용할 수도 있습니다! – Lrrr

+2

"마사지"가 아니라 "메세지"를 의미하셨습니까? – dasblinkenlight

답변

3

: 상호 배타적 인 실행을 보장, 전달 메시지, 데이터 공유는 IPC 다양하지만, 소켓은 모두 3

에 대한 생각에 대한 해결책이 아니다 또는 응용 프로그램간에 전달하고자하는 정보의 양식을 제공하십시오. 아마도 전형적인 시나리오를 발견 할 것입니다 (예 : 생산자 - 소비자 문제).

oldschool TCP 서비스와 비슷한 메시지 전달 문제가있는 경우 잘 테스트되고 디버그하기 쉽기 때문에 소켓을 사용하는 것이 좋습니다. 커널은 완전한 디커플링을 제공하지만 커널은 한 응용 프로그램 (송신자 또는 수신자)의 차단을 효율적으로 수행 할 수 있기 때문에 파이프에 비해 단점이 없습니다.

소켓은 UDP, TCP 또는 유닉스 소켓 일 수 있습니다. 어떤 경우에도 소켓이있는 로컬 IPC에 네트워크 카드가 필요하지 않습니다.

관련 문제