【问题标题】:How To Transfer data from a python web application to a java desktop applaction如何将数据从 Python Web 应用程序传输到 Java 桌面应用程序
【发布时间】:2011-10-05 19:34:01
【问题描述】:

我需要一些有关将数据从 python web 应用程序传输到 java 桌面应用程序的方法的帮助。

我正在做的是让 java 监听一个端口并接收数据。但我不知道如何将数据从 python 发送到服务器上的开放端口。

我的问题是如何将数据从 python 网络应用程序发送到计算机上的开放端口。还会有数据类型之类的问题吗?

【问题讨论】:

  • 如果您知道如何在两者之间建立连接,您可能希望查看一个独立于平台的介质来中继该数据。有些可能是 JSON、XML、CORBA 等。根据数据,一个简单的字节流可能就足够了。您要传输什么类型的数据?
  • @Rig 我正在传输字符串和整数以及一个索引以将它们与另一个相关联
  • Python 服务器必须是 HTTP 吗?我假设您需要将数据“推送”到 Java 应用程序?否则为什么不只是在某个时间间隔或启动时从 python 中提取。可以使用长轮询/HTTP 服务器推送吗?

标签: java python port web-applications


【解决方案1】:

这是一个非常大的问题,因为有 许多 方法可以在服务器(您的 Java 应用程序)和客户端(您的 Python 应用程序)之间来回发送数据。

您的情况不是很清楚(您的“python web 应用程序”到底是什么?),但您可能想查看XML-RPC。 XML-RPC 的使用和设置非常简单,并且可以处理“数据类型和任何其他问题”。你基本上只是在你的服务器上设置了一些客户端可以调用的函数,然后让 python 调用它们。参数由客户端整齐地包装,并由服务器解包。返回值相同。这是一个简单而干净的界面。

对于 python 调用服务器,你想使用xmlrpclib 模块。

要在 java 中设置 XMLRPC 服务器,您需要 many options。我不是 Java 人,但我相信这方面也很简单。

有很多很好的 xml-rpc 教程。 Here is one 涵盖了python中的客户端和服务器。

就像我之前所说的,您可以选择很多。 XML-RPC 是一种很好且简单的方法,可以让您轻松上手,而不会真正限制您(例如:它内置了故障处理)。

祝你好运!

【讨论】:

  • 谢谢,我会尝试它看起来很有希望
  • 这可能是我会选择的解决方案。这太容易了,而且很适合很多情况。它是根据情况而定的,但在许多情况下这已经足够了。
【解决方案2】:

如果你使用独立于平台的数据格式——xml、json、yaml、ascii txt、...——来表示数字,你真的没什么好担心的。

如果您无法承受上述低效率,则需要二进制协议。

Java 使用网络字节排序(或 Big Endian)。 Python 使用本机主机字节顺序,或者,您可以指定字节顺序。在这里你想specify Big Endian (sec 7.3.2.1)写你的数字数据。

【讨论】:

    【解决方案3】:

    为什么不在 python 中使用套接字并将其发送到 java 服务器。 Java不知道最终客户端是python,它读取的只是数据(字节)。我已经这样做了,并且可以无缝运行。

    有关转换数据类型的更多详细信息,请参阅 python 的 struct 模块

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2023-03-11
      相关资源
      最近更新 更多