2012-03-09 4 views
4

Java 응용 프로그램 용 플러그 인을 작성하려고합니다. 플러그인은 Java 응용 프로그램에 새로운 이벤트가 인식되었음을 알릴 수 있어야합니다 (Observer Design Pattern, Polling ... 요점이 아님). 문제는 Microsoft Kinect 컨트롤러에서 이벤트를 추적하는 것입니다 (C++과 Microsoft Kinect SDK를 사용해야하기 때문에). 따라서 Java 응용 프로그램과 Kinect 응용 프로그램간에 통신해야합니다. Java 응용 프로그램이 인터페이스 ("C++"헤더 파일, dll 등)를 "포함"하는 어댑터 디자인 패턴과 같은 것을 생각했습니다. 먼저 JNI를 생각했지만 응용 프로그램 측면에서 모두 사용할 DLL을 작성해야합니다. 내가 생각한 또 다른 것은 UDP (또는 좀 더 가벼운 것)와 같은 프로토콜을 통해 제스처 데이터를 제공하는 것입니다. 마지막으로 들었던 것은 COM + 어셈블리를 작성하는 것이 었습니다.하지만 솔직히 COM +에 대한 지식은별로 없습니다.Java 응용 프로그램과 C++ 응용 프로그램 간의 통신

JAVA APPLICATION << ----- ??? ----- >> KINECT APPLICATION 

답변

3

나는 몇 가지 예제를 발견 같은 here, herehere로하는 당신을 추천하거나 공유 메모리 구조 또는 다른 사용 소켓을 사용했다.

이 경우 응용 프로그램이 밀접하게 결합되지 않기 때문에 프로그램을 소켓을 통해 통신하게하는 것이 가장 좋을 것이라고 생각합니다. 따라서 IP, 포트 및 명령 세트 만 노출하면됩니다.

this에 따르면 Kinect에서 C++ 서버를 만드는 것이 가능하지만 Kinect 관련 프로젝트를 한 번도 해본 적이 없기 때문에 다른 말은 할 수 없습니다.

+0

물론 ... 소켓 ...! 나는 그것에 대해 자세히 살펴볼 것이다. 타이! – seveves

+0

매력처럼 작동합니다! 나는 UDP를 사용하기로 결정했다 ... 괜찮아 보인다;) ... 고마워! – seveves

+0

@SeveFriede : 빠른 속도에도 불구하고 UDP는 패키지 제공을 보장하지 않습니다. 응용 프로그램이 더 먼 거리에서 통신하도록 결정하면 문제가 될 수 있습니다.) – npinti

4

구글의 Protocol Buffers을 살펴 봐야 할 수도 있습니다.

JNI을 고려하고 있으므로 이 IBM tutorial을 참조하시기 바랍니다.

JNI를 사용하면 Java 응용 프로그램에서 c/C++ 메소드를 호출 할 수 있으며 그 반대의 경우도 가능합니다.

또한 C++에서 java를 호출하는 경우 question도보십시오.

관련 문제