对于一个典型的基于客户机-服务器的应用程序,这两者之间有什么不同。具体来说,基于线路的协议有什么特殊之处?更好的是,类何时必须从Protocol
继承,何时必须从LineReceiver
继承?
最佳答案
差异是由接收到的数据处理造成的。
协议具有数据接收功能。它将在接收到数据时调用。
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!
在客户端接收到带有implements LineReceiver的消息;
def lineReceived(self, line):
print line
.
.
output:
Lorem ipsum do amet siempre.
We have Drogba!
我希望这会有帮助。有关更多信息,您可以查看reference或发表评论。