我创建了一个小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对所有函数可见?
发布于 2009-06-11 01:15:31
例如,如果您希望将client_address作为第一个参数传递给每个函数,则可以子类SimpleXMLRPCRequestHandler (在实例化SimpleXMLRPCServer时将您的子类作为处理程序传递)并覆盖_dispatch (将self.client_address前置到params元组,然后将其余部分委托给SimpleXMLRPCRequestHandler._dispatch)。如果这种方法可以,并且你想看代码,那就直接问吧!
我不确定如何安全地使用“使client_address可见”的函数参数--没有client_address作为空名,全局的或其他的,只有请求处理程序类的每个实例的self.client_address (将其复制到全局变量之类的技巧感觉非常糟糕--在线程下也不安全,等等)。
https://stackoverflow.com/questions/978784
复制相似问题