下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python網(wǎng)絡(luò)編程之xmlrpc模塊rpc:遠(yuǎn)程過程調(diào)用協(xié)議。簡(jiǎn)單的來說就是客戶端可以很方便得遠(yuǎn)程調(diào)用服務(wù)端的接口程序,而不用管底層是如何實(shí)現(xiàn)的。
XML-RPC的全稱是XMLRemoteProcedureCall,即XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集)遠(yuǎn)程過程調(diào)用。它是一套允許運(yùn)行在不同操作系統(tǒng)、不同環(huán)境的程序?qū)崿F(xiàn)基于Internet過程調(diào)用的規(guī)范和一系列的實(shí)現(xiàn)。這種遠(yuǎn)程過程調(diào)用使用http作為傳輸協(xié)議,XML作為傳送信息的編碼格式。Xml-Rpc的定義盡可能的保持了簡(jiǎn)單,但同時(shí)能夠傳送、處理、返回復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。這個(gè)過程也被大家稱為分布式計(jì)算。
xmlrpc:使用http協(xié)議作為傳輸協(xié)議的rpc機(jī)制。
1、注冊(cè)函數(shù):register_function
以下是定義了一個(gè)函數(shù)的xmlrpc服務(wù)端。
register_function用于注冊(cè)一個(gè)供調(diào)用的函數(shù),第一個(gè)參數(shù)為自己實(shí)現(xiàn)的方法名,第二個(gè)參數(shù)為供客戶端調(diào)用的方法名。
fromxmlrpc.serverimportSimpleXMLRPCServer#導(dǎo)入模塊
s=SimpleXMLRPCServer(("1",4242))#服務(wù)端ip假設(shè)為1,端口假設(shè)為4242
deftwice(x):#定義函數(shù)
returnx*2
s.register_function(twice)#注冊(cè)函數(shù)(讓客戶端發(fā)現(xiàn))
s.serve_forever()#啟動(dòng)服務(wù)端
下面是該服務(wù)端對(duì)應(yīng)的xmlrpc客戶端
根據(jù)url和端口號(hào)初始化一個(gè)服務(wù)器對(duì)象,然后調(diào)用需要的方法即可:
importxmlrpc.client#導(dǎo)入模塊
s=xmlrpc.client.ServerProxy('1:4242')#鏈接服務(wù)端
print(s.twice(2))#調(diào)用函數(shù)
調(diào)用成功成功后服務(wù)端會(huì)顯示
2、注冊(cè)類方法函數(shù):register_instance
服務(wù)端如:
fromxmlrpc.serverimportSimpleXMLRPCServer#導(dǎo)入模塊
s=SimpleXMLRPCServer(("7",4242))#設(shè)置服務(wù)端ip和端口
classAnimal:#定義類
defrabit(self,amount):
return4*amount
defchicken(self,amount):
return2*amount
s.register_instance(Animal())#注冊(cè)類方法函數(shù)(讓客戶端發(fā)現(xiàn))
s.serve_forever()#啟動(dòng)服務(wù)端
對(duì)應(yīng)的客戶端如下:
importxmlrpc.client#導(dǎo)入模塊
s=xmlrpc.client.ServerProxy('7:4242')#鏈接服務(wù)端
print(s.rabit(2))#調(diào)用函數(shù)
print(s.chicken(2))
3、dispatch方法
接下來要修改一些注冊(cè)類方法函數(shù)接口的參數(shù),對(duì)應(yīng)的修改一下類定義。通過在類定義中添加_dispatch方法可以在遠(yuǎn)程調(diào)用接口的時(shí)候經(jīng)過_dispach。
服務(wù)端如下:
fromxmlrpc.serverimportSimpleXMLRPCServer#導(dǎo)入模塊
s=SimpleXMLRPCServer(("7",4242))#設(shè)置服務(wù)端ip和端口
classAnimal:#定義類
def_dispatch(self,method,param):#定義_dispatch方法
print(method)#在服務(wù)端顯示調(diào)用的方法名
func=getattr(self,method)#調(diào)用接口
returnfunc(*param)
defrabit(self,amount):
return4*amount
defchicken(self,amount):
return2*amount
s.register_instance(Animal())#注冊(cè)函數(shù)(讓客戶端發(fā)現(xiàn))
s.serve_forever()#啟動(dòng)服務(wù)端
客戶端如下:
importxmlrpc.client#導(dǎo)入模塊
s=xmlrpc.client.ServerProxy('7:4242')#鏈接服務(wù)端
print(s.rabit(2))#調(diào)用函數(shù)
print(s.chicken(2))
注:服務(wù)器端運(yùn)行結(jié)果:
4、多線程訪問
初始化服務(wù)器用的不再是SimpleXMLRPCServer了,而是自定義的一個(gè)類,繼承自兩個(gè)基類,ThreadingMixIn使其能夠支持多線程,其余的操作方式還是和普通的一樣。
并且我們新增了一個(gè)函數(shù),接受兩個(gè)參數(shù),計(jì)算和,可以看到無
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 前端開發(fā)技術(shù)規(guī)范解析
- 2026年電力工程師電力安全知識(shí)與技能考核試題及答案
- 2026年資產(chǎn)評(píng)估實(shí)務(wù)操作題庫(kù)及答案詳解
- 2026年醫(yī)學(xué)專業(yè)進(jìn)階測(cè)試疾病診斷判斷力考驗(yàn)
- 2026年環(huán)境科學(xué)研究題目氣候變化與環(huán)境影響評(píng)估
- 2026年高分子材料測(cè)試技術(shù)人員資格測(cè)試?yán)碚撆c試題庫(kù)
- 2026年軟件測(cè)試工程師預(yù)測(cè)模擬題集
- 2026年C編程進(jìn)階試題與解答詳解
- 2026年法律實(shí)務(wù)案例分析初級(jí)題目
- 2026年阿里巴巴校招筆試題目大全
- 2026年齊齊哈爾高等師范??茖W(xué)校單招(計(jì)算機(jī))測(cè)試模擬題庫(kù)必考題
- 剖宮產(chǎn)術(shù)后早期活動(dòng)實(shí)施要點(diǎn)
- 2025年化工原理考試題及答案
- 湖南省益陽市2024-2025學(xué)年高二上學(xué)期語文1月期末考試試卷(含答案)
- 幕墻工程售后質(zhì)量保障服務(wù)方案
- 鋁合金鑄造項(xiàng)目可行性研究報(bào)告
- 2024年西藏自治區(qū)事業(yè)單位《職業(yè)能力傾向測(cè)驗(yàn)(D類)》考試真題及答案
- 2025汽車行業(yè)Data+AI數(shù)智化轉(zhuǎn)型白皮書
- 市政工程項(xiàng)目管理及表格模板全集
- 2025年甘肅省蘭州市綜合評(píng)標(biāo)專家?guī)炜荚囶}庫(kù)(三)
- 家居行業(yè)投資合作合同(2025修訂版)
評(píng)論
0/150
提交評(píng)論