【问题标题】:Share application specific data types with server and client与服务器和客户端共享应用程序特定的数据类型
【发布时间】:2009-02-27 07:17:05
【问题描述】:

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

感谢您的所有回复。

【问题讨论】:

    标签: java c++ client-server


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

          • 在 Java 中加载它们很简单(System.loadLibrary),但它们需要有 JNI 包装器(这可能是为此设计的)。
          【解决方案5】:

          这对于 XML 来说看起来不错。这就是我要开始的地方。

          【讨论】:

            猜你喜欢
            • 2014-10-25
            • 1970-01-01
            • 1970-01-01
            • 2021-03-10
            • 1970-01-01
            • 2016-12-04
            • 1970-01-01
            • 2011-11-24
            相关资源
            最近更新 更多