Python提供的XMLRPC的解决方案用法很简单:
首先,就好像在编写普通的程序那样子编写服务器将要运行的服务
然后,使用SimpleXMLRPCServer模块创建XMLRPC服务器,在其中注册服务器将提供的函数或者对象(即上一步所写的那些服务)。
最后,在客户端内使用xmlrpclib.ServerProxy连接到服务器,想要调用服务器的函数,直接调用ServerProxy即可
#helloserver.py
from SimpleXMLRPCServer import SimpleXMLRPCServer
def hello():
print "hello,world!"
svr=SimpleXMLRPCServer(("", 8080), allow_none=True)
svr.register_function(hello)
svr.serve_forever()
#helloclient.py
from xmlrpclib import ServerProxy
svr=ServerProxy("http://localhost:8080")
svr.hello()
美中不足的是,SimpleXMLRPCServer是一个单线程的服务器。这意味着,如果几个客户端同时发出多个请求,其它的请求就必须等待第一个请求完成以后才 能继续。通过多线程可以解决这个问题:
#helloserver.py def hello():
print "hello,world!"
from SimpleXMLRPCServer import SimpleXMLRPCServer from SocketServer import ThreadingMixIn class ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
pass
svr=ThreadXMLRPCServer(("", 8080), allow_none=True)
svr.register_function(hello)
svr.serve_forever()