麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

python遠程調用rpc模塊xmlrpclib的方法

2024-09-09 19:02:29
字體:
來源:轉載
供稿:網友

RPC(Remote Procedure Call Protocol)是遠程調用協議,它通過網絡請求服務到遠端服務器,服務器根據請求做出響應,將結果返回

它是一種C/S模式,客戶端可以調用遠程服務器上的參數(類似URL)并返回結果

利用rpc可以實現系統的分布式架構,可以將功能分解到多臺服務器上進行實現,同時也將也可以將負載打散,分布到不同服務器上,整合計算資源

在openstack中就大量使用了rpc

rpc多使用http傳輸請求,格式有xml,json等,這里是xml

模塊:

xmlrpclib

注:xmlrpclib模塊在python3中重命名為xmlrpc.client

xmlrpc并不是很安全,但在2.7.9 https url中默認加入了證書,主機名驗證

定義:

class xmlrpclib.ServerProxy(uri[, transport[, encoding[, verbose[, allow_none[, use_datetime[, context]]]]]])

1.uri,即服務端的url地址

2.transport 傳輸實例,可選,https urls/http

3.encoding

4.verbose 是debug模式

5.allow_none 是否請求空 ,若為True,那么常量none將被翻譯成xml,默認如果是none則拋出異常 TypeError

6.use_datetime 可以使用date/time values記錄調用時間datetime.datetime,默認是false

ServerProxy對象提供一些默認的方法:

1.ServerProxy.system.listMethods() 返回遠端服務器方法列表

2.ServerProxy.system.methodSignature(name) 方法簽名,是一個數組類型

3.ServerProxy.system.methodHelp(name) 方法幫助信息

例如一個簡單的示例:

服務端:

import xmlrpclibfrom SimpleXMLRPCServer import SimpleXMLRPCServerdef get_power(n,m): return n**mserver = SimpleXMLRPCServer(("0.0.0.0", 8081))print "start service get power on 0.0.0.0 8081..."server.register_function(get_power, "get_power")server.serve_forever()

客服端:

import xmlrpclibserver_power = xmlrpclib.ServerProxy("http://192.168.137.9:8081/")print "3**2 = %d" %(server_power.get_power(3,2))print "2**5 = %d" %(server_power.get_power(2,5))

結果:

服務端:

# python xml_server.py start service get power on 0.0.0.0 8081...192.168.137.9 - - [22/May/2017 10:37:47] "POST / HTTP/1.1" 200 -192.168.137.9 - - [22/May/2017 10:37:47] "POST / HTTP/1.1" 200 -

客服端:

# python xml_client.py 3**2 = 92**5 = 32

xmlrpclib提供的一些方法:

class xmlrpclib.DateTime 時間對象

例如:

服務端:

import datetimefrom SimpleXMLRPCServer import SimpleXMLRPCServerimport xmlrpclibdef today(): today = datetime.datetime.today() return xmlrpclib.DateTime(today)server = SimpleXMLRPCServer(("0.0.0.0", 8081))print "start service on 0.0.0.0 8081..."server.register_function(today, "today")server.serve_forever()

客服端:

import xmlrpclibimport datetimes = xmlrpclib.ServerProxy("http://192.168.137.9:8081/")today = s.today()converted = datetime.datetime.strptime(today.value, "%Y%m%dT%H:%M:%S")print "Today: %s" % converted.strftime("%d.%m.%Y, %H:%M")

結果:

服務端

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品视频69 | 日本在线不卡免费 | 天天躁狠狠躁夜躁2020挡不住 | 久久亚洲线观看视频 | 中文字幕视频在线播放 | 黄色大片大毛片 | 午夜视频在线观看免费视频 | 婷婷中文字幕一区二区三区 | 中文字幕一二区 | 综合在线一区 | 国产精品一区二区三区在线播放 | 羞羞视频免费网站日本动漫 | 一级裸体视频 | 在线中文字幕播放 | 亚洲白嫩在线观看 | 毛片在线免费观看视频 | 国产精品中文在线 | 日韩电影一区二区 | 99精品国产一区二区三区 | 国产精品无码久久久久 | 国产精品区一区二区三区 | 久久亚洲精品国产一区 | 羞羞的视频免费在线观看 | 久久精品站 | 老司机一级毛片 | 精品中文字幕在线播放 | 精品亚洲国产视频 | 成人免费视频视频在线观看 免费 | av在线电影网站 | 91一级毛片 | 欧美韩国日本在线 | 怦然心动50免费完整版 | 亚洲精品 在线播放 | 国产资源在线观看 | 视频在线亚洲 | 国产91一区二区三区 | 国产成人精品视频在线 | 韩国精品久久久 | 乱淫67194 | 欧美 国产 亚洲 卡通 综合 | 国产黄色毛片 |