1.XML-RPC是一个使用xml来对调用函数进行编码(服务函数名,参数,返回值结果等,一般也可以用json,序列化的形式),用http协议来进行传输的远程过程协议。
客户端对调用的函数以及参数序列化成字节流发送出去,服务器端对接收到的字节流进行反序列化即得到目标函数名及参数值。
Python建立RPC服务器或客户端的通用库,代码如下:
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SocketServer import ThreadingMixIn
from xmlrpclib import ServerProxy
import thread
class ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
pass
class RPCServer():
def __init__(self, ip='127.0.0.1', port='8000'):
self.ip = ip
self.port = int(port)
self.svr = None
def start(self, func_lst):
thread.start_new_thread(self.service, (func_lst, 0,))
def resume_service(self, v1, v2):
self.svr.serve_forever(poll_interval=0.001)
def service(self, func_lst, v1):
self.svr = ThreadXMLRPCServer((self.ip, self.port), allow_none=True)
for func in func_lst: