我有一个系统,其中代码位于访问远程系统的驱动程序上。我正在使用 xmlrpcserver 的 SimpleXmlRpcServer 实现,它工作得很好。可以注册函数和实例,但我不认为可以注册整个模块。特别是id喜欢注册os模块。这是 simplexmlrpcserver 的可能性,还是有任何其他实现允许这样做?
问问题
101 次
1 回答
2
一种方法是迭代模块中的方法并将它们中的每一个注册到register_instance
.
例如,使用这个SimpleXMLRPCServer
例子作为起点,这个 Stackoverflow 答案用于迭代模块中的函数:
服务器
from SimpleXMLRPCServer import SimpleXMLRPCServer
import os
server = SimpleXMLRPCServer(('localhost', 9000))
def list_contents(dir_name):
return os.listdir(dir_name)
for name, val in os.__dict__.items():
if callable(val):
print "Registering " + name
server.register_function(val, name)
try:
print 'Use Control-C to exit'
server.serve_forever()
except KeyboardInterrupt:
print 'Exiting'
客户
import xmlrpclib
proxy = xmlrpclib.ServerProxy('http://localhost:9000')
print 'os.listdir():', proxy.listdir('.')
于 2015-03-08T00:27:38.420 回答