python xmlrpclib SimpleXMLRPCServer 模塊

RPC是Remote Procedure Call的縮寫,翻譯成中文就是遠程方法調用,是一種在本地的機器上調用遠端機器上的一個過程(方法)的技術,這個過程也被你們稱爲「分佈式計算」,是爲了提升各個分立機器的「互操做性」而發明出來的技術。python

XML-RPC的全稱是XML Remote Procedure Call,即XML遠程方法調用。安全

它是一套容許運行在不一樣操做系統、不一樣環境的程序實現基於Internet過程調用的規範和一系列的實現。
這種遠程過程調用使用http做爲傳輸協議,XML做爲傳送信息的編碼格式。
Xml-Rpc的定義儘量的保持了簡單,但同時可以傳送、處理、返回複雜的數據結構。
Python下的XML-RPC:服務器

一、類庫:xmlrpclib    通常使用在客戶端,這個模塊用來調用註冊在XML-RPC服務器端的函數,xmlrpclib並非一個類型安全的模塊,沒法抵禦惡意構造的數據,這方面的一些處理工做須要交給開發者本身。數據結構

二、類庫:SimpleXMLRPCServer   通常是用在服務器端,這個模塊用來構造一個最基本的XML-RPC服務器框架框架

三、構造一個基本的XML-RPC Server:分佈式

from SimpleXMLRPCServer import SimpleXMLRPCServer

def is_even(n):
    return n%2 == 0
server = SimpleXMLRPCServer(("localhost", 8000))#肯定URL和端口
print "Listening on port 8000..."
server.register_function(is_even, "is_even") #註冊is_even函數
server.serve_forever()#啓動服務器,並使其對這個鏈接可用

四、構造一個基本的XML-RPC Client:函數

import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))#客戶端調用XML-RPC函數
print "100 is even: %s" % str(proxy.is_even(100))
相關文章
相關標籤/搜索