Java 与服务器和客户端共享特定于应用程序的数据类型

Java 与服务器和客户端共享特定于应用程序的数据类型,java,c++,client-server,Java,C++,Client Server,我必须创建一个serverjava-clientc++系统,服务器和客户端都必须使用对象数据类型,对于客户端和服务器都是相同的,例如,将在客户端创建一个car对象,然后发送到服务器,在服务器上对car对象进行传统计算。我想做的是创建一个car对象的通用实现,然后在服务器和客户机中使用这个实现。首先,我考虑在C++中创建一个DLL,所有数据类型都是客户端和服务器相同的,但是这个解决方案有一个缺点。因为这个解决方案只能在Windows操作系统下工作,我必须支持Win、Mac和Linux。我的问题有多

我必须创建一个serverjava-clientc++系统,服务器和客户端都必须使用对象数据类型,对于客户端和服务器都是相同的,例如,将在客户端创建一个car对象,然后发送到服务器,在服务器上对car对象进行传统计算。我想做的是创建一个car对象的通用实现,然后在服务器和客户机中使用这个实现。首先,我考虑在C++中创建一个DLL,所有数据类型都是客户端和服务器相同的,但是这个解决方案有一个缺点。因为这个解决方案只能在Windows操作系统下工作,我必须支持Win、Mac和Linux。我的问题有多平台的解决方案吗


非常感谢您的回复。

看看CORBA:

看看CORBA:

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


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

如果您坚持跨平台的标准库,在OSX和Linux上,将库DLL重新编译为共享库应该不会有任何困难。当然,用Java加载它们是另一个问题,我对此没有任何专业知识


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

谷歌有一个开源库,用于在客户端和服务器之间传输数据对象,就像您的情况一样。它支持C++、java和python。< /p> < p>谷歌有一个开源库,用于在客户端和服务器之间传输数据对象,如您的情况。它支持C++,java和python。< /p> 以及协议缓冲区,还有另一个叫做节俭脸谱网的协议缓冲区。看


查看本页以了解协议缓冲区的比较,还有另一个称为thrift facebook的协议缓冲区。看


请参阅本页以进行比较

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

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

在Java中加载它们是simple System.loadLibrary,但它们需要有JNI包装器,这是最有可能的设计。在Java中加载它们是simple System.loadLibrary,但它们需要有JNI包装器,这是最有可能的设计。