Java 爪哇<-&燃气轮机;C桥

Java 爪哇<-&燃气轮机;C桥,java,c,linux,sockets,rpc,Java,C,Linux,Sockets,Rpc,我正在开发一个应用程序,该应用程序具有托管在Glassfish服务器上的Java web界面和作为Linux守护程序实现的C内核 我现在最大的问题是如何进行远程过程调用。我需要双向调用函数和方法。以下是我能想到的可能解决方案: 使用Java本机接口和网络套接字实现RPC D-Bus——据我所知,DBus可用于Java和C之间的RPC 我希望使用最基本的方法,而不使用外部库或框架。 是否可以仅使用套接字在Java和C之间直接调用函数/方法?我使用的操作系统是Centos 有没有更优雅的方式连接这两

我正在开发一个应用程序,该应用程序具有托管在Glassfish服务器上的Java web界面和作为Linux守护程序实现的C内核

我现在最大的问题是如何进行远程过程调用。我需要双向调用函数和方法。以下是我能想到的可能解决方案:

  • 使用Java本机接口和网络套接字实现RPC
  • D-Bus——据我所知,DBus可用于Java和C之间的RPC
  • 我希望使用最基本的方法,而不使用外部库或框架。 是否可以仅使用套接字在Java和C之间直接调用函数/方法?我使用的操作系统是Centos


    有没有更优雅的方式连接这两种语言?

    没有外部库,只剩下套接字。但我会将DBus归类为外部库,不是吗

    如果C程序可以使用套接字,就不需要Java本机接口。Java代码可以调用C代码侦听的套接字

    如果允许DBus,也许你应该考虑过大量的网络和RPC协议,它们既有C又有java的库。(同样,不需要使用JNI。)


    按照DBus的方式,查看和。

    您能提供一些如何实现这一点的更多信息吗?@user1103606这是一个相当高级的主题,因此很难给出简单的答案。您知道如何编写TCP套接字连接和调用方法(例如,使用反射?)反射基本上是指您可以向服务器询问其导出的功能和方法。如果您可以用C编写服务器和客户端代码,在Java中也一样。@user1103606,因为您知道如何创建C套接字服务器,我添加了一个链接,指向如何从Java客户端打开套接字,Oracles第1课。@user1103606,没有直接简单的方法在程序之间调用函数。使用第三方库可以做到这一点,但它们都涉及到在协议中封装函数。寻找Hessian协议、XML-RPC、ZeroC ICE、CORBA等。