Twisted python 中的 Protocol 和 ProcessProtocol 有什么区别?

What is the difference between Protocol and ProcessProtocol in Twisted python?

我想编写一个可以通过多个套接字连接到服务器的 Twisted 客户端应用程序。我希望使用 Factory、Protocol、Transport 模型,因为它们似乎提供了一个很好的框架。 interfaces,Protocol和ProcessProtocol都是继承自BaseProtocol,但它们有什么不同呢? ProcessProtocol 是协议池吗?特别是ProcessProtocol中的子进程是什么,这个可以作为socket对象吗?

IProtocol(Interface): 
dataReceived(data)
connectionLost(reason)
makeConnection(transport) 
connectionMade()

IProcessProtocol(Interface): 

childDataReceived(childFD, data)
childConnectionLost(childFD)
processExited(reason)
processEnded(reason)

编辑:发现 ProcessProtocol 实际上可能正在启动 python 进程。

ProcessProtocol 是用于 communicate with a sub-process 的协议。该进程可以是 Python 进程,也可以是您要通过其标准输入、标准输出和标准错误流启动并与之通信的任何其他程序。