我想要一些將數據從python web應用程序傳輸到java桌面應用程序的幫助。如何將數據從python web應用程序傳輸到java桌面應用程序
我正在做的是讓java在端口上偵聽並接收數據。但我不知道如何將數據從python發送到服務器上的開放端口。
我的問題是如何將數據從python web應用程序發送到計算機上的開放端口。並且會有數據類型和其他任何問題嗎?
我想要一些將數據從python web應用程序傳輸到java桌面應用程序的幫助。如何將數據從python web應用程序傳輸到java桌面應用程序
我正在做的是讓java在端口上偵聽並接收數據。但我不知道如何將數據從python發送到服務器上的開放端口。
我的問題是如何將數據從python web應用程序發送到計算機上的開放端口。並且會有數據類型和其他任何問題嗎?
這是一個非常大的問題,因爲有許多在服務器(您的Java應用程序)和客戶端(您的Python應用程序)之間來回發送數據的方式。
您的情況不太清楚(您的「python web應用程序」究竟是什麼?),但您可能需要查看XML-RPC。 XML-RPC使用和設置非常簡單,並且處理「數據類型和其他任何問題」等問題。你基本上只是在客戶端可以調用的服務器上設置一些函數,然後讓python調用它們。參數被客戶端整齊地包裝起來,並由服務器解包。返回值是相同的。它是一個簡單而乾淨的界面。
對於打電話給服務器的python,你想使用xmlrpclib模塊。
要在java中設置XMLRPC服務器,您有manyoptions。我不是一個Java人,但我確信它在這方面也很簡單。
有很多很好的xml-rpc教程。覆蓋python中的客戶端和服務器的Here is one。
就像我剛纔所說,有很多選項可供您使用。 XML-RPC是一種很好而簡單的方法,讓你的腳不受任何限制(例如:內置故障處理)。
祝你好運!
謝謝我會嘗試它看起來很有前途 –
這可能是我會選擇的解決方案。這太簡單了,很適合很多情況。它的情況,但在許多情況下這是足夠的。 – Rig
如果您使用與平臺無關的數據格式 - xml,json,yaml,ascii txt ...來表示數字,那麼您完全沒有必要擔心。
如果你不能承受上述的低效率,那麼就需要一個二進制協議。
Java使用網絡字節排序(或Big Endian)。 Python使用本地主機字節排序,或者,您可以指定字節排序。在這裏你想寫specify Big Endian (sec 7.3.2.1)寫你的數字數據。
爲什麼不在python中使用套接字並將其發送到java服務器。 Java不知道最終客戶端是python,它讀取的只是數據(字節)。我已經完成了這項工作,並且可以無縫工作。
查看轉換數據類型
更多細節Python的結構模塊,如果你知道如何使你可能想看看在一個獨立於平臺中用於中繼數據兩者之間的連接。有些可能是JSON,XML,CORBA等。根據數據,一個簡單的字節流可能就足夠了。你正在傳輸什麼樣的數據? – Rig
@Rig我將字符串和整數以及索引與其他關聯 –
Python服務器是否必須是HTTP?我假設你需要將數據「推送」到Java應用程序中?否則,爲什麼不在一定的時間間隔或啓動時從python中取出。你可以使用長輪詢/ HTTP服務器推送? – eSniff