对于典型的基于客户端 - 服务器的应用程序,两者如何相互不同。具体来说,基于行的协议有什么特别之处?更好的是,类何时必须从Protocol
继承,何时从LineReceiver
继承?
答案 0 :(得分:4)
差异变为接收数据处理。
协议具有dataReceived功能。每当收到数据时都会调用它。
LineReceiver会覆盖协议。它实现了一种基本的消息传递格式,消息用'\ r \ n'分隔。
假设服务器写了像;
这样的消息request.write("Lorem ipsum")
request.write("do amet siempre.\r\n")
request.write("We have Drogba!\r\n")
使用实现协议在客户端收到消息;
def dataReceived(self, data):
print data
.
.
output:
Lorem ipsum
do amet siempre.
We have Drogba!
在客户端通过实现LineReceiver收到消息;
def lineReceived(self, line):
print line
.
.
output:
Lorem ipsum do amet siempre.
We have Drogba!
我希望它有所帮助。有关详细信息,请查看reference或发表评论。