LineReCeiver 是以换行符为分隔符的协议。
__author__ = 'zhoukunpeng'
from twisted.internet import reactor,protocol
from twisted.protocols import  basic
class LineSever(basic.LineReceiver):
    def lineReceived(self, line):
        print "receiverd:",line
        self.sendLine(line)
    def connectionMade(self):
        self.sendLine("hello")
class Sever(protocol.ServerFactory):
    protocol=LineSever
object=Sever()
reactor.listenTCP(5001,object)
reactor.run()

客户端:

[root@zkp534 ~]# telnet   192.168.13.187 5001

Trying 192.168.13.187...

Connected to 192.168.13.187.

Escape character is '^]'.

hello

111

111

33333

33333

333333333

333333333

在生产环境中比较常用的应该是basic.Int32StringReceiver  basic.Int16StringReceiver  basic.Int8StringReceiver ,其通过一个消息头部确定消息body的大小,而不再通过换行符。

如: 对于basic.Int32StringReceiver 其消息帧结构应为如下:

clipboard

posted on 2016-08-08 15:43  wolover  阅读(478)  评论(0编辑  收藏  举报