1

我必须创建一个服务器(java)-客户端(c++)系统,服务器和客户端都必须使用对象(数据类型),对于客户端和服务器来说,对象(数据类型)是相同的,例如将创建一个汽车对象在客户端,然后发送到服务器,在该服务器上将对汽车对象进行额外的计算。我想做的是创建汽车对象的一个​​通用实现,然后在服务器和客户端中使用这个实现。首先,我考虑创建一个 dll(在 c++ 中),所有数据类型对于客户端和服务器都是相同的,但是这个解决方案有一个缺点。因为这个解决方案只适用于 Windows 操作系统,我必须支持 Win、Mac、Linux。那么是否有针对我的问题的多平台解决方案?

我感谢您的所有回复。

4

5 回答 5

3

Google 有一个名为Protocol Buffers的开源库,用于在您的情况下在客户端和服务器之间传输数据对象。它支持 C++、Java 和 Python。

于 2009-02-27T07:41:50.140 回答
1

除了协议缓冲区之外,还有另一个称为 thrift(facebook 的协议缓冲区)。见http://incubator.apache.org/thrift/

请参阅此页面进行比较http://stuartsierra.com/2008/07/10/thrift-vs-protocol-buffers

于 2009-02-27T09:54:46.573 回答
0

这对于 XML 来说似乎是一项不错的工作。那就是我要开始的地方。

于 2009-02-27T15:58:06.780 回答
0

看看 CORBA:http ://en.wikipedia.org/wiki/CORBA

于 2009-02-27T07:20:47.460 回答
0

如果您坚持使用标准库(跨平台),那么在 OS X 和 Linux 上将库 (DLL) 重新编译为共享库 (.so) 应该不会有任何困难。当然,在 Java 中加载它们是一个不同的问题(我没有任何专业知识)。

但是,更重要的是,在您的客户端服务器应用程序的情况下,您可能希望研究对象的有效序列化,以便它们可以通过网络传输并由接收器可靠地重建。

于 2009-02-27T07:34:16.990 回答