如何处理同一事件循环中的 Asyncore.dispatcher(s) 和 SimpleXMLRPCServer 事件?
附注我已经知道你们中的一些人可能会推荐 Twisted,但 Twisted 的问题是它对于我的需求来说有点太高级了。特别是,我通过重写依赖于计时器的 Asyncore.dispatcher.writable() 方法来进行 UDP 流量控制。不确定这是否/如何在 Twisted 中可行。
最佳答案
为此,您应该使用 Twisted :-)。您不能将 SimpleXMLRPCServer
放入异步循环中;它是同步代码,预计会阻塞。
使用 Twisted 进行流量控制,即使使用 UDP,也很容易。您的 DatagramProtocol
不是重写像 writable()
这样的方法,可以在其 transport
属性上调用 stopReading
/stopWriting
/startReading
/startWriting
等方法。可以看这些方法here .
关于python - 处理来自同一事件循环的 SimpleXMLRPCServer 调用和 Asyncore.dispatchers 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7899346/