【问题标题】:C++ remote method invokingC++ 远程方法调用
【发布时间】:2012-03-31 20:52:42
【问题描述】:

我有负责进程处理的类 CPU,并且我对进程进行排队。 CPU 端程序在服务器上实现,进程队列在客户端。协议 - TCP。 如果该类的实例是在客户端创建的,我如何从服务器的类进程中调用方法。

这个问题的可能解决方案是什么? 也许通过网络将对象传递到服务器更容易(当然如果可能的话)? C++ 是否提供某种 RMI 库?

实际上我的 Process 类只有一个成员 - 带有名称的字符串,也许将这个字符串传递给服务器然后在服务器端重新创建一个对象更容易?

【问题讨论】:

  • C++ 的库很多,语言本身不提供任何远程支持。

标签: c++ rpc


【解决方案1】:

CORBA 是你真正想要的。它提供了向远程对象发送消息的机制,就好像它们在本地一样。

【讨论】:

  • 哎哟... CORBA 可能有点矫枉过正,这取决于用户实际需要做什么。无论如何 +1,即使有时间把事情做好,一旦你知道用 CORBA 实现服务实际上并不是那么
【解决方案2】:

看看 Thrift (http://thrift.apache.org/)。它不是唯一的选择,但它非常易于使用,它还可以调用方法并在不同语言之间传递对象。您使用特殊语言定义服务,运行编译器为客户端和服务器生成 C++ 代码(或您喜欢的任何其他语言),然后您只需在机器之间调用方法。

如果您有兴趣,我会在幻灯片共享中提供一个很好的演示文稿:

http://www.slideshare.net/dvirsky/introduction-to-thrift

【讨论】:

    【解决方案3】:

    您可以使用 XML-RPC。它是一种轻量级且易于使用的 RPC 机制。你可以得到它here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2023-04-11
      • 2012-04-09
      • 1970-01-01
      • 2015-07-01
      • 2012-05-10
      • 1970-01-01
      相关资源
      最近更新 更多