以下使用的是py3代码,py2可能引用方式不一样
服务器端server.py
# -*- coding: utf-8 -*-
from xmlrpc.server import SimpleXMLRPCServer
def file_read(filename):
with open(filename, "r") as f:
return f.read()
server = SimpleXMLRPCServer(("localhost", 8000)) # 实例化服务
server.register_function(file_read) # 注册函数
server.serve_forever() # 启动服务
要读取的文件
demo.txt
关雎
先秦:佚名
关关雎鸠,在河之洲。窈窕淑女,君子好逑。
参差荇菜,左右流之。窈窕淑女,寤寐求之。
求之不得,寤寐思服。悠哉悠哉,辗转反侧。
参差荇菜,左右采之。窈窕淑女,琴瑟友之。
参差荇菜,左右芼之。窈窕淑女,钟鼓乐之。
客户端
client.py
# -*- coding: utf-8 -*-
from xmlrpc.client import ServerProxy
server = ServerProxy("http://localhost:8000") # 连接服务
text = server.file_read("demo.txt") # 调用服务器端函数
print(text)
必要说明
功能 | 函数 |
---|---|
注册方法 | SimpleXMLRPCServer.register_function(function[, name]) |
注册实例 | SimpleXMLRPCServer.register_instance(instance[, allow_dotted_names]) |
注册反函数 | SimpleXMLRPCServer.register_introspection_functions() |
注册复合函数 | SimpleXMLRPCServer.register_multicall_functions() |
参考
- 如何用五点教会你Python高效编程
- Python中关于XML-RPC原理
- python使用SimpleXMLRPCServer实现简单的rpc