Twisted ProcessProtocol读取通道

时间:2012-08-03 01:35:27

标签: python twisted

使用reactor.spawnProcess时,它如何附加到传入协议的读取通道?即我可以传递SSHProcessProtocol并生成bash并发送ls并获得响应。我理解它通过调用childDataReceived等转储信息..但它是如何得到ls的?我无法从这里看到反应堆如何连接stdin http://twistedmatrix.com/documents/12.1.0/api/twisted.internet.interfaces.IProcessProtocol.html

1 个答案:

答案 0 :(得分:1)

这听起来像是关于实施如何运作的问题。接口明确不是关于实现。他们描述了一个API,并将实际使该API工作的所有细节留给其他代码。因此,接口IProcessProtocol的定义/文档不会告诉您有关实现如何工作的任何信息。

IProcessProtocol传输大致有两个实现,即IProcessTransport。运输负责在Twisted世界中实际进行I / O.协议是解析和序列化逻辑的用武之地,为应用程序提供比抛出字节串更高级别的接口。

POSIX的一个实现位于twisted.internet.process。对于Windows,另一个是twisted.internet._dumbwin32proc。这些是您应该检查源的模块,以便了解实现的工作原理。