日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

javaweb调用python算法_请教怎么用java远程调用python? 多谢

發布時間:2023/12/3 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaweb调用python算法_请教怎么用java远程调用python? 多谢 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

請問如何用java遠程調用python? 謝謝!

本帖最后由 blackkettle 于 2015-05-07 13:00:41 編輯

比如有一臺機器?A上安裝了python,?另一臺機器B要用java?調用A?上的python的某個函數,輸入數據在B機器上,所有的計算在A機器完成,結果返回給B機器。

請問這個怎么實現?

希望大俠能給一個簡單的demo,?非常感謝!

------解決思路----------------------

在A機器上搭建一個服務,可以采用socket、webservice、httppost等方式提供服務,在服務中接收到請求后調用python,并將結果返回

在B機器上開發一個終端調用A機器上的服務即可。

------解決思路----------------------

我也是新人

不過遠程的話,可以用服務器+同步\異步交互,建議是Apache+JSON

------解決思路----------------------

socket:?直接用socket.?自己定義協議:?函數名,?參數值會怎么傳遞,?返回值要怎么傳遞等.

http:?用http協議,?函數名,?參數值等可以用GET/POST的參數傳遞.?但你要自己把復雜些的值(字典,?列表等)序列化(pickle,?json等)

python有很多web?framework,?也可以用自帶的httpserver

rpc:?把上面的東西都包裝起來,?用起來很像直接的函數調用.

文檔(https://docs.python.org/2/library/xmlrpclib.html),?里面有例子,?也可以自己搜python+模塊名.

例子,?服務器端:

import?xmlrpclib

from?SimpleXMLRPCServer?import?SimpleXMLRPCServer

def?is_even(n):

return?n%2?==?0

server?=?SimpleXMLRPCServer(("localhost",?8000))

print?"Listening?on?port?8000..."

server.register_function(is_even,?"is_even")

server.serve_forever()

客戶端代碼:?(但你得換成java的版本,?搜java+rpc)

import?xmlrpclib

proxy?=?xmlrpclib.ServerProxy("http://localhost:8000/")

print?"3?is?even:?%s"?%?str(proxy.is_even(3))

print?"100?is?even:?%s"?%?str(proxy.is_even(100))

------解決思路----------------------

客戶端沒法強迫服務器端做什么(惡意入侵除外),?所以必須server主動提供一些函數,?client才能調用.

server提供的函數不一定要是自己實現的,?也可以是從其他模塊import來的.?參見下面的例子(sqrt,?date.today).

下面的例子里還包括了一種情況,?需要傳輸的值(這兒是date?object)rpc模塊不知道怎么序列化,?這時需要你自己把它轉變成能序列化的類型,?在另一端再轉回來.

服務器:

#?encoding:?utf-8

import?xmlrpclib

from?SimpleXMLRPCServer?import?SimpleXMLRPCServer

from?datetime?import?date

from?math?import?sqrt

def?is_even(n):

return?n%2?==?0

server?=?SimpleXMLRPCServer(("localhost",?8000))

print?"Listening?on?port?8000..."

server.register_function(is_even,?"is_even")

server.register_function(sqrt,?'kaipingfang')

#?next?one?will?not?work?since?xmlrpclib?don't?know?how?to?marshal?date?object

server.register_function(date.today,?'today')

def?today_in_string():

return?str(date.today())

server.register_function(today_in_string,?'mytoday')

server.serve_forever()

客戶端:

#?encoding:?utf-8

import?xmlrpclib

proxy?=?xmlrpclib.ServerProxy("http://localhost:8000/")

print?"3?is?even:?%s"?%?str(proxy.is_even(3))

print?"100?is?even:?%s"?%?str(proxy.is_even(100))

print?"sqrt?of?10:?%s"?%?str(proxy.kaipingfang(10))

try:?#?the?bad?function

print?"today?is:?%s"?%?str(proxy.today())

except?Exception?as?e:

print?e

print?"today?in?string?is:?%s"?%?proxy.mytoday()

總結

以上是生活随笔為你收集整理的javaweb调用python算法_请教怎么用java远程调用python? 多谢的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。