我必须创建一个服务器(java) - 客户端(c ++)系统,服务器和客户端都必须使用与客户端和服务器相同的对象(数据类型),例如汽车对象将在客户端创建,然后发送到服务器,在该服务器上将对car对象进行aditional计算。我想要做的是创建一个汽车对象的通用实现,而不是在服务器和客户端中使用此实现。首先,我考虑创建一个dll(在c ++中),其中所有数据类型对于客户端和服务器都是相同的,但是这个解决方案有一个缺点。因为此解决方案仅适用于Windows操作系统,我必须支持Win,Mac,Linux。那么我的问题有多平台解决方案吗?
我感谢你的所有回复。
答案 0 :(得分:3)
Google有一个名为Protocol Buffers的开源库,用于在您的情况下在客户端和服务器之间传输数据对象。它支持C ++,Java和Python。
答案 1 :(得分:1)
以及协议缓冲区,还有一个名为thrift(facebook的协议缓冲区)。见http://incubator.apache.org/thrift/
请参阅此页面以进行比较http://stuartsierra.com/2008/07/10/thrift-vs-protocol-buffers
答案 2 :(得分:0)
答案 3 :(得分:0)
如果你坚持使用标准库(跨平台),那么在OS X和Linux上重新编译库(DLL)作为共享库(.so)应该没有任何困难。当然,用Java加载它们是一个不同的问题(我没有任何专业知识)。
但是,更重要的是,在客户端服务器应用程序的情况下,您可能希望查看对象的有效serialization,以便它们可以通过网络传输并由接收方可靠地重建。
答案 4 :(得分:0)
这对XML来说非常好。这就是我要开始的地方。