- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个类,我希望通过 Python 中的 SimpleXMLRPCServer 进行测试。我设置单元测试的方法是创建一个新线程,并在其中启动 SimpleXMLRPCServer。然后我运行所有测试,最后关闭。
这是我的服务器线程:
class ServerThread(Thread):
running = True
def run(self):
self.server = #Creates and starts SimpleXMLRPCServer
while (self.running):
self.server.handle_request()
def stop(self):
self.running = False
self.server.server_close()
问题是,调用 ServerThread.stop(),然后调用 Thread.stop() 和 Thread.join() 不会导致线程正确停止,如果它已经在等待 handle_request 中的请求。而且由于这里似乎没有我可以使用的任何中断或超时机制,所以我不知道如何才能干净地关闭服务器线程。
最佳答案
我遇到了同样的问题,经过数小时的研究,我解决了这个问题,方法是从使用我自己的 handle_request() 循环切换到 serve_forever() 来启动服务器。
serve_forever() 开始像您一样的内部循环。这个循环可以通过调用shutdown() 来停止。停止循环后,可以使用 server_close() 停止服务器。
我不知道为什么这行得通而 handle_request() 循环却行不通,但它行得通 ;P
这是我的代码:
from threading import Thread
from xmlrpc.server import SimpleXMLRPCServer
from pyWebService.server.service.WebServiceRequestHandler import WebServiceRquestHandler
class WebServiceServer(Thread):
def __init__(self, ip, port):
super(WebServiceServer, self).__init__()
self.running = True
self.server = SimpleXMLRPCServer((ip, port),requestHandler=WebServiceRquestHandler)
self.server.register_introspection_functions()
def register_function(self, function):
self.server.register_function(function)
def run(self):
self.server.serve_forever()
def stop_server(self):
self.server.shutdown()
self.server.server_close()
print("starting server")
webService = WebServiceServer("localhost", 8010)
webService.start()
print("stopping server")
webService.stop_server()
webService.join()
print("server stopped")
关于python - 在单独的线程中运行 SimpleXMLRPCServer 并关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/502610/
我正在按照“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 中创建
我是一名优秀的程序员,十分优秀!