Python网络编程基础笔记-向服务器端注册Introspection
1.XML-RPC服务器Introspection使用
# -*- coding: cp936 -*-
"""
向XML-RPC服务器端注册函数introspection
1.注册introspection函数
"""
import SimpleXMLRPCServer
# 自定义函数
def func_add(x,y):
""" return x + y """
return x + y
def func_sub(x,y):
""" return x - y """
return x - y
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost",50000))
# 将内置函数len/pow注册为XML-RPC服务器的属性
server.register_function(pow)
server.register_function(len)
#将自定义函数func_add/func_sub注册为XML-RPC服务器的属性
server.register_function(func_add)
server.register_function(func_sub)
server.register_introspection_functions()
server.serve_forever()
2.测试instropection的客户端程序
# -*- coding: cp936 -*-
"""
XML客户端程序
1.测试Introspection
2.methodSignature函数的返回值有问题,不是参数和返回值
"""
import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost:50000")
for method in server.system.listMethods():
for sig in server.system.methodSignature(method):
print "%s-%s" % (sig[0],"".join(sig[1:]))
print server.system.methodHelp(method)