gpt4 book ai didi

python - 我们可以将多少个类/实例注册到 xml rpc 服务器中?

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:33 25 4
gpt4 key购买 nike

我试图在 xml rpc 服务器模块中创建 2 个类,然后将这两个类的实例注册到 xml rpc 服务器。单独注册时,我能够从两个实例运行这些方法,但是当我只在其中一个上运行时获得注册,另一个则抛出错误。此外,我只能看到我最后注册了其实例的类的方法。我想知道 no 上是否有限制。我可以在服务器中注册的实例,因为我记得读过类似的东西,但我现在在文档中找不到提及?

这是我的服务器代码 -

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/RPC2',)

# Create server
server = SimpleXMLRPCServer(("localhost", 8000), requestHandler=RequestHandler)
server.register_introspection_functions()

# Register pow() function; this will use the value of
# pow.__name__ as the name, which is just 'pow'.
server.register_function(pow)
#server.register_instance(FileOperation)
server.register_instance(file)
# Register a function under a different name
def adder_function(x,y):
return x + y
server.register_function(adder_function, 'add')

# Register an instance; all the methods of the instance are
# published as XML-RPC methods (in this case, just 'div').
class MyFuncs:
def div(self, x, y):
return x // y
class MyFuncs2:
def modulus(self, x, y):
return x % y
server.register_instance(MyFuncs2())
server.register_instance(MyFuncs())

# Run the server's main loop
server.serve_forever()

这是我的客户端代码 -

导入xmlrpclib

try:
#s = xmlrpclib.ServerProxy(r'http://administrator:passw0rd@172.19.201.59:8000')
s = xmlrpclib.ServerProxy(r'http://localhost:8000')
print s.system.listMethods()
print s.pow(2,3) # Returns 2**3 = 8
print s.add(2,3) # Returns 5
print s.div(5,2) # Returns 5//2 = 2
print s.moduls(5,2)
except Exception,err:
print err

最佳答案

我和你有同样的经历,文档中没有完全明确,只能注册一个实例。

你仍然可以这样做:

class AllFuncs(MyFuncs, MyFuncs2):
pass

server.register_instance(AllFuncs)

关于python - 我们可以将多少个类/实例注册到 xml rpc 服务器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20369243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com