################################# 同步处理 #################################
服务端
from xmlrpc.server import SimpleXMLRPCServer
class Calculate:
def add(self, x, y):
return x + y
def multiply(self, x, y):
return x * y
def subtract(self, x, y):
return abs(x-y)
def divide(self, x, y):
return x/y
obj = Calculate()
server = SimpleXMLRPCServer(("0.0.0.0", 8088))
# 将实例注册给 rpc server 并指定 别名(在客户端中调用)
server.register_instance(obj)
print("Listening on port 8088")
server.serve_forever()
客户端
from xmlrpc.client import ServerProxy
server = ServerProxy("http://10.10.129.179:8088")
print (server.add(2, 3))
运行结果
################################# 异步处理 #################################
服务端
from xmlrpc.server import SimpleXMLRPCServer
from socketserver import ThreadingMixIn
# from SocketServer import ThreadingMixIn 基于py2
class ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
pass
class Calculate:
def add(self, x, y):
return x + y
def multiply(self, x, y):
return x * y
def subtract(self, x, y):
return abs(x - y)
def divide(self, x, y):
return x / y
obj = Calculate()
server = ThreadXMLRPCServer(("0.0.0.0", 8088), allow_none=True)
server.register_instance(obj)
print("Listening on port 8088")
server.serve_forever()
客户端
from xmlrpc.client import ServerProxy
server = ServerProxy("http://10.10.129.179:8088")
print (server.multiply(2, 3))
执行结果