Twisted ProcessProtocol读取通道



当使用reactor.spawnProcess时,它如何连接到传入协议的读取通道?即,我可以通过SSHProcessProtocol并生成bash并发送CCD_ 1并获得响应。我知道它通过调用childDataReceived等来转储信息。但它是如何获得ls的?我看不出reactor是如何连接stdin的http://twistedmatrix.com/documents/12.1.0/api/twisted.internet.interfaces.IProcessProtocol.html

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

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

POSIX的一个实现是在twisted.internet.process中。另一个适用于Windows,位于twisted.internet._dumbwin32proc中。为了了解实现的工作原理,您应该检查这些模块的来源。

最新更新