Python XML RPC服务器端和客户端实例
Python XML RPC服务器端和客户端实例
发布时间:2016-12-28 来源:查字典编辑
摘要:一、远程过程调用RPCXML-RPCisaRemoteProcedureCallmethodthatusesXMLpassedviaHTTP...

一、远程过程调用RPC

XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it, a client can call methods with parameters on a remote server (the server is named by a URI) and get back structured data. This module supports writing XML-RPC client code; it handles all the details of translating between conformable Python objects and XML on the wire.

简单地,client可以调用server上提供的方法,然后得到执行的结果。类似与webservice。

推荐查看xmlprc的源文件:C:Python31Libxmlrpc

二、实例

1) Server

复制代码 代码如下:

from xmlrpc.server import SimpleXMLRPCServer

from xmlrpc.server import SimpleXMLRPCRequestHandler

def div(x,y):

return x - y

class Math:

def _listMethods(self):

# this method must be present for system.listMethods

# to work

return ['add', 'pow']

def _methodHelp(self, method):

# this method must be present for system.methodHelp

# to work

if method == 'add':

return "add(2,3) => 5"

elif method == 'pow':

return "pow(x, y[, z]) => number"

else:

# By convention, return empty

# string if no help is available

return ""

def _dispatch(self, method, params):

if method == 'pow':

return pow(*params)

elif method == 'add':

return params[0] + params[1]

else:

raise 'bad method'

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

server.register_introspection_functions()

server.register_function(div,"div")

server.register_function(lambda x,y: x*y, 'multiply')

server.register_instance(Math())

server.serve_forever()

2)client

复制代码 代码如下:

import xmlrpc.client

s = xmlrpc.client.ServerProxy('http://localhost:8000')

print(s.system.listMethods())

print(s.pow(2,3)) # Returns 28

print(s.add(2,3)) # Returns 5

print(s.div(3,2)) # Returns 1

print(s.multiply(4,5)) # Returns 20

3)result

Python XML RPC服务器端和客户端实例1

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新python学习
热门python学习
脚本专栏子分类