- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我们正在开发基于客户端-服务器 XML-RPC 的应用程序。服务器部分应该根据请求知道每个客户端的 IP 地址。
为了实现这一点,我们将 SocketServer.ThreadingMixIn 混合到 SimpleXMLRPCServer 和子类 SimpleXMLRPCRequestHandler 中以重新定义它的 _dispatch 方法。下面是代码:
class ThreadedXMLRPCServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
pass
class RequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
def _dispatch(self, method, params):
function = self.server.funcs[method]
def decor(function, ip_addr):
def new_function(*args):
try:
return function(ip_addr, *args)
except Exception, err:
log_msg('Exception ocurred in XMLRPC thread (%s)!' % err)
return new_function
return decor(function, self.client_address[0])(*params)
问题是有时候请求的IP地址和请求的数据都是混在一起处理的,i. e.请求的 IP 地址与其真实地址不匹配。
_dispatch 的最后一行有问题还是我们遗漏了什么?
谢谢!
最佳答案
您应该重新引发在您的自定义 _dispatch
方法中调用 function(ip_addr ...)
遇到的任何异常,否则您可能会短路内置 -在错误处理中。
这就是我的意思......
class RequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
def _dispatch(self, method, params):
function = self.server.funcs[method]
def decor(function, ip_addr):
def new_function(*args):
try:
return function(ip_addr, *args)
except Exception, err:
log_msg('Exception ocurred in XMLRPC thread (%s)!' % err)
raise # <---- re-raise
return new_function
...不过,如果它与您的问题有关,我会感到惊讶。据我所知,您所拥有的应该可以正常工作。
出于好奇,如果您改为继承 ForkingMixin 会发生什么情况?
关于python - SimpleXMLRPCServer 请求调度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6506206/
我正在按照“Standard Python Library by Example”实现XMLRPCServer。我希望客户端能够看到方法签名,我希望如此 proxy = xmlrpclib.Serve
我有两个 IP 映射到机器,我想知道如何让一个 python xmlrpc 服务器监听两个 IP(同一端口),就像使用 Apache 一样。 谢谢, 最佳答案 使用“”作为主机: s = Simple
我正在用 Python 编写一个简单的 RPC 服务器,用于实验室环境中的内部网络。当我使用如下代码创建服务器时: server = SimpleXMLRPCServer(("", 8000)) 服务
我正在使用 stdlib 中的 SimpleXMLRPCServer 运行一个 xml-rpc 服务器。 我的代码看起来像这样: import SimpleXMLRPCServer import so
我有一个这样的服务器: from SimpleXMLRPCServer import SimpleXMLRPCServer def ack(msg): return input("Allow?
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Python XMLRPC with concurrent requests 我正在编写一个 python
我们正在开发基于客户端-服务器 XML-RPC 的应用程序。服务器部分应该根据请求知道每个客户端的 IP 地址。 为了实现这一点,我们将 SocketServer.ThreadingMixIn 混合到
我正在使用 SimpleXMLRPCServer 编写一个基于 xmlrpc 的 python 2.7 程序。我使用我们所有的逻辑导入该类并将其注册到: server = SimpleXMLRPCSe
服务器位于本地网络上。 我尝试使用 try-except 并调用服务器的一种方法,但是,如果服务器离线,则需要大约 1 秒,对于我的应用程序来说,这太长了。 有没有一种快速的方法来检查 ServerP
我有一个类,我希望通过 Python 中的 SimpleXMLRPCServer 进行测试。我设置单元测试的方法是创建一个新线程,并在其中启动 SimpleXMLRPCServer。然后我运行所有测试
我正在尝试列出服务器上目录的内容。如果客户端和服务器代码在同一台机器上执行,则可以完美运行。但是,使用服务器的 IP 从另一台计算机运行客户端代码会出现 Errno 111:Socket Error。
我正在通过 WAN 处理来自多个 XMLRPC 客户端的请求。这东西在一天(有时两天)的时间内非常有效,然后在 socket.py 中卡住: data = self._sock.recv(self._
这是一个示例程序,说明了我的问题。该程序启动一个wxPython应用程序并在线程中启动一个SimpleXMLRPCServer。这一切都很好。我的问题是我无法关闭 SimpleXMLRPCServer
目前我正在使用 Python 中的 SimpleXMLRPCServer 模块编写应用程序。 此应用程序的基本目标是继续在服务器上运行并继续检查队列中的任何任务。如果它在队列中遇到任何新请求,则服务该
我正在开发一个项目,将一组方法从各种客户端计算机公开到服务器,以实现信息收集和自动化。我目前正在使用 Python,SimpleXMLRPCServer 似乎在本地网络上运行得很好,我知道客户端计算机
我有一个 SimpleXMLRPCServer服务器( python )。 如何在请求处理程序中获取客户端的 IP 地址? 此信息出现在日志中。但是,我不确定如何从请求处理程序中访问此信息。 最佳答案
在使用使用 SocketServer.ThreadingMixin 的 SimpleXMLRPCServer 链时,我间歇性地收到 httplib.CannotSendRequest 异常。 我所说的
我正在尝试使用 Python 制作一个非常简单的 XML RPC 服务器,它提供基本身份验证 + 获取连接用户 IP 的能力。让我们以 http://docs.python.org/library/x
如何处理同一事件循环中的 Asyncore.dispatcher(s) 和 SimpleXMLRPCServer 事件? 附注我已经知道你们中的一些人可能会推荐 Twisted,但 Twisted 的
因为跨域的xmlrpc请求在JavaScript中是不可能的我需要创建一个 Python 应用程序,它通过 HTTP 公开一些 HTML 和同一域上的 XML-RPC 服务。 在 python 中创建
我是一名优秀的程序员,十分优秀!