Java < - > C Bridge

Pet*_*zov 8 c java sockets linux rpc

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

我现在最大的问题是如何进行远程过程调用.我需要在两个方向上调用函数和方法.这些是我能想到的可能的解决方案:

  1. 使用Java Native Interface和网络套接字实现RPC.
  2. D-Bus - 据我所知,DBus可用于Java和C之间的RPC.

我想在不使用外部库或框架的情况下使用最基本的方法.是否可以直接使用套接字调用Java和C之间的函数/方法?我使用的操作系统是Centos.

是否有更优雅的方式来连接这两种语言?

Pro*_*ica 8

没有外部库,只保留套接字.但我会将DBus归类为外部库,不是吗?

如果C程序可以使用套接字,则不需要Java Native Interface.Java代码可以从Java打开套接字,调用C代码侦听的套接字.

如果你允许DBus,也许你应该考虑过多的网络和RPC协议,它们都有C和Java库.(同样,不需要使用JNI.)

以DBus的方式,查看Java文档教程.

  • @ user1103606这是一个相当高级的主题,所以很难给出一个简单的答案.你知道如何编写TCP套接字连接和调用方法(例如使用反射吗?) (2认同)