远程程序调用(Remote Procdure Call, RPC)服务器就是一个程序,这种程序可以把函数显示给客户端,而客户端可以调用这些函数.
python很容易建立一个XML-RPC服务器,基于SimpleXMLRPCServer。
#! -*- coding=utf-8 -*-
#simplexmlrpcserver 第一个例子 远程调用,把本地的函数,给远程的调用
from SimpleXMLRPCServer import SimpleXMLRPCServer,SimpleXMLRPCRequestHandler
from SocketServer import ThreadingMixIn
import traceback
class Math:
def pow(self,x,y):
return x*y
def hex(self,x):
return "%x" % x
class ThreadingServer(ThreadingMixIn, SimpleXMLRPCServer):
pass
serveraddr = ('',8765)
srvr = ThreadingServer(serveraddr, SimpleXMLRPCRequestHandler)
srvr.register_instance(Math())
srvr.register_introspection_functions()
srvr.serve_forever()
#! -*- coding=utf8 -*-
#测试xmlrpcserver
'''
运行该程序可以跟simpy.py 程序进行交谈,可以调用simpy 里面定义的pow(),和hex()函数,这个就是远程调用了
'''
import xmlrpclib, code
url = "http://localhost:8765/"
s = xmlrpclib.ServerProxy(url)
interp = code.InteractiveConsole({'s':s})
interp.interact("you can now use the object to interact where the server")