我希望在将数据从python Web应用程序传输到Java桌面应用程序的方法上提供一些帮助。
我正在做的是让java监听端口并接收数据。但我不知道如何将数据从python发送到服务器上的开放端口。
我的问题是如何将数据从python web应用程序发送到计算机上的开放端口。是否会出现数据类型和其他任何问题?
答案 0 :(得分:3)
这是一个非常大的问题,因为有许多方法在服务器(您的Java应用程序)和客户端(您的python应用程序)之间来回发送数据。
您的情况不太清楚(您的“python Web应用程序”到底是什么?),但您可能需要查看XML-RPC。 XML-RPC使用和设置极其简单,并且可以处理“数据类型和任何其他问题”等问题。您基本上只需在客户端可以调用的服务器上设置一些函数,并让python调用它们。参数由客户端整齐地包装并由服务器打开。返回值是相同的。它是一个简单而干净的界面。
对于python调用服务器,你想使用xmlrpclib模块。
要在java中设置XMLRPC服务器,您有many options。我不是一个Java人,但我确信这方面也很简单。
有许多优秀的xml-rpc教程。 Here is one涵盖了python中的客户端和服务器。
就像我之前说过的,你可以选择多种选择。 XML-RPC是一种很好的简单方法,可以让您的脚步受到影响,而不会对您产生很大的限制(例如:它内置了故障处理功能)。
祝你好运!答案 1 :(得分:1)
如果您使用独立于平台的数据格式 - xml,json,yaml,ascii txt,... - 来表示数字,那么您无需担心。
如果您无法承受上述效率低下的问题,则需要二进制协议。
Java使用网络字节排序(或Big Endian)。 Python使用本机主机字节排序,OR,您可以指定字节顺序。在这里,您需要specify Big Endian (sec 7.3.2.1)来编写数字数据。
答案 2 :(得分:1)
为什么不在python中使用套接字并将其发送到java服务器。 Java不知道最终客户端是python,它读取的只是数据(字节)。我做到了这一点,它无缝地工作。
有关转换数据类型的更多详细信息,请参阅python的struct模块