永发信息网

Java客户端远程调用C服务器

答案:4  悬赏:70  手机版
解决时间 2021-11-07 15:00
  • 提问者网友:人生佛魔见
  • 2021-11-07 10:04
Java客户端远程调用C服务器
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-11-07 10:42
真没有作过相关的开发,Java和C之间相互调用,本地的使用jni或者是直接发送Windows消息;远程的,都是使用socket通信的。谈一些想法,希望能给你些帮助,纸上谈兵:
1)现在常用的异构系统之间的调用,采用Web Service的方法,没做过,但是应该可以。
2)RMI是Java To Java,另外Sun还提供了RMI-IIOP,这个是综合了RMI和Corba,是可以用在Java和其它语言对象之间的远程调用,但是我没有资料,也许你需要看看Corba的基本知识,如何使用idl来定义C对象的接口.
3)我不知道你对C所在的服务器有什么要求,是否可以运行Java.如果可以,那么有一个方法,你可以做一个Java程序来作为RMI的服务器,然后这个Java程序负责和Java客户通信,通信的方式还是RMI.然后,在这个Java服务程序中,同过jni的方法调用你的C程序.
全部回答
  • 1楼网友:像个废品
  • 2021-11-07 14:41
WebService太重量级了,为了远程调用用这个不值得。

一般来说较为简单的异构集成可以通过Socket来做。

如果请求响应协议复杂, 为了避免Java解析二进制的麻烦(C有memcpy)可以采用xml格式传送请求和响应,java端用dom4j解析, c端用libxml2解析。

如果请求响应协议简单,也可以考虑直接采用2进制传送,java的byte和c的int:4,自己定义调用解析协议(定义每4字节或者每N字节代表的含义)。
  • 2楼网友:鸠书
  • 2021-11-07 13:37
jms
或者基于SOAP的 web service
  • 3楼网友:人類模型
  • 2021-11-07 12:00
中间可以通过WebService通讯。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯