Python XML RPC服务器端和客户端实例
一、远程过程调用RPC
XML-RPCisaRemoteProcedureCallmethodthatusesXMLpassedviaHTTPasatransport.Withit,aclientcancallmethodswithparametersonaremoteserver(theserverisnamedbyaURI)andgetbackstructureddata.ThismodulesupportswritingXML-RPCclientcode;ithandlesallthedetailsoftranslatingbetweenconformablePythonobjectsandXMLonthewire.
简单地,client可以调用server上提供的方法,然后得到执行的结果。类似与webservice。
推荐查看xmlprc的源文件:C:\Python31\Lib\xmlrpc
二、实例
1)Server
fromxmlrpc.serverimportSimpleXMLRPCServer fromxmlrpc.serverimportSimpleXMLRPCRequestHandler
defdiv(x,y): returnx-y classMath: def_listMethods(self): #thismethodmustbepresentforsystem.listMethods #towork return['add','pow'] def_methodHelp(self,method): #thismethodmustbepresentforsystem.methodHelp #towork ifmethod=='add': return"add(2,3)=>5" elifmethod=='pow': return"pow(x,y[,z])=>number" else: #Byconvention,returnempty #stringifnohelpisavailable return"" def_dispatch(self,method,params): ifmethod=='pow': returnpow(*params) elifmethod=='add': returnparams[0]+params[1] else: raise'badmethod'
server=SimpleXMLRPCServer(("localhost",8000)) server.register_introspection_functions() server.register_function(div,"div") server.register_function(lambdax,y:x*y,'multiply') server.register_instance(Math()) server.serve_forever()