我正在尝试学习 python 扭曲的互联网框架,但有一件事让我感到困惑。使用 telnet 进行的初始测试表明,protocol.Protocol.dataReceived()
只要接收到数据,就会调用该方法。因此,如果我将其定义如下,它会在触发前等待 EOL:
def dataReceived(self, data):
print "MyProtocol::dataReceived, (%s)" %(data)
输出:
MyProtocol::dataReceived, (dgdfg
)
但是,只要我添加了一行:
def dataReceived(self, data):
print "MyProtocol::dataReceived, (%s)" %(data)
self.transport.write(data)
它为每个角色触发。
输出:
MyProtocol::dataReceived, (d)
MyProtocol::dataReceived, (g)
MyProtocol::dataReceived, (d)
MyProtocol::dataReceived, (f)
MyProtocol::dataReceived, (g)
MyProtocol::dataReceived, (
)
关于这里发生了什么的任何想法?
工厂是protocol.Factory
,协议是protocol.Protocol
谢谢