首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用xmlrpclib向所有方法公开client_address?

如何使用xmlrpclib向所有方法公开client_address?
EN

Stack Overflow用户
提问于 2009-06-11 00:34:23
回答 1查看 728关注 0票数 2

我创建了一个小SimpleXMLRPCServer来检查客户端的ip。

我试试这个:

服务器

导入xmlrpclib

从SimpleXMLRPCServer导入SimpleXMLRPCServer

服务器=SimpleXMLRPCServer((“本地主机”,8000))

def MyIp():server.socket.getpeername():return“您的ip是:%s”%def

server.register_function(MyIp)

server.serve_forever()

客户端

导入xmlrpclib

se = xmlrpclib.Server("http://localhost:8000")

打印se.MyIp()

错误

xmlrpclib.Fault::(107,‘传输终结点未连接’)“>

如何使client_address对所有函数可见?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-11 01:15:31

例如,如果您希望将client_address作为第一个参数传递给每个函数,则可以子类SimpleXMLRPCRequestHandler (在实例化SimpleXMLRPCServer时将您的子类作为处理程序传递)并覆盖_dispatch (将self.client_address前置到params元组,然后将其余部分委托给SimpleXMLRPCRequestHandler._dispatch)。如果这种方法可以,并且你想看代码,那就直接问吧!

我不确定如何安全地使用“使client_address可见”的函数参数--没有client_address作为空名,全局的或其他的,只有请求处理程序类的每个实例的self.client_address (将其复制到全局变量之类的技巧感觉非常糟糕--在线程下也不安全,等等)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/978784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档