2012-03-09 142 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

我已经发现了一些例子,如hereherehere其中建议您要么使用共享存储器结构或者用的插座。

我认为在这种情况下,让你的程序通过套接字进行通信将是最好的主意,因为你的应用程序不会紧密耦合,所以你只需要公开一个IP,一个端口和一组命令。

根据this,似乎可以在Kinect上创建一个C++服务器,但除此之外,我不能说很多,因为我从来没有在Kinect相关的项目上工作过。

+0

哦,当然...插座!我会仔细看看。 TY! – seveves 2012-03-09 06:38:45

+0

工程就像一个魅力!我决定使用UDP ...似乎很好;)...谢谢! – seveves 2012-03-09 17:32:10

+0

@SeveFriede:请记住,尽管速度更快,UDP并不保证包裹的交付。如果你决定让你的应用程序在更远的距离上通信,这可能会有问题;) – npinti 2012-03-09 17:39:04

4

可能你应该看看谷歌的Protocol Buffers

由于您正在考虑JNI。 我建议你参考IBM tutorial

JNI允许java应用程序调用c/C++方法,反之亦然。

也看看这个 question,如果你从C++调用java。

相关问题