![](/img/trans.png)
[英]What is the difference between Protocol and ProcessProtocol in Twisted python?
[英]Twisted ProcessProtocol read channel
当使用reactor.spawnProcess时,它如何附加到传入的协议的读取通道上? 即我可以传递SSHProcessProtocol并生成bash并发送ls
并获得响应。 我知道它通过调用childDataReceived等来转储信息。但是它是怎么得到ls
呢? 我从这里看不到反应堆如何连接标准输入http://twistedmatrix.com/documents/12.1.0/api/twisted.internet.interfaces.IProcessProtocol.html
这听起来像是有关实现工作方式的问题。 接口显然与实现无关。 他们描述了一个API,并将使该API实际工作的所有细节留给其他代码。 因此,接口IProcessProtocol
的定义/文档不会告诉您实现的工作原理。
IProcessProtocol
的传输大约有两种实现,即IProcessTransport
。 传输负责在Twisted世界中实际执行I / O。 协议是解析和序列化逻辑所要去的地方,可为应用程序提供比抛出字节字符串更高级别的接口。
对于POSIX,一种实现是在twisted.internet.process
。 对于Windows,另一个在twisted.internet._dumbwin32proc
。 这些是您应该检查其来源的模块,以了解实现的工作原理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.