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

时间:2015-08-10 21:23:24

标签: python sockets twisted twisted.web

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

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

IProcessProtocol(Interface): 

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

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

1 个答案:

答案 0 :(得分:2)

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