Python的XML-RPC

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()

 

posted @ 2016-04-15 10:47  炉石传说  阅读(1119)  评论(0)    收藏  举报