在前面的博文中,介绍一些消息分割的方案,以及MINA、Netty、Twisted针对这些方案提供的相关API。例如MINA的TextLineCodecFactory、PrefixedStringCodecFactory,Netty的LineBasedFrameDecoder、LengthFieldB...
分类:
Web程序 时间:
2014-08-28 11:00:19
阅读次数:
246
环境:win7 64位,python 2.7.3安装:http://twistedmatrix.com/Releases/Twisted/14.0/Twisted-14.0.0.win-amd64-py2.7.exehttps://pypi.python.org/packages/2.7/z/zop...
分类:
编程语言 时间:
2014-08-28 00:52:28
阅读次数:
249
protobuf是谷歌的Protocol Buffers的简称,用于结构化数据和字节码之间互相转换(序列化、反序列化),一般应用于网络传输,可支持多种编程语言。protobuf如何使用这里不再介绍,本文主要介绍在MINA、Netty、Twisted中如何使用protobuf,不了解protobuf的同学可以去参考我的另一篇博文。在前面的一篇博文中,有介绍到一种用一个固定为4字节的前缀Header来...
分类:
Web程序 时间:
2014-08-27 11:05:27
阅读次数:
313
在上一篇博文中,有介绍到用换行符分割消息的方法。但是这种方法有个小问题,如果消息中本身就包含换行符,那将会将这条消息分割成两条,结果就不对了。本文介绍另外一种消息分割方式,即上一篇博文中讲的第2条:use a fixed length header that indicates the length...
分类:
Web程序 时间:
2014-08-27 10:33:17
阅读次数:
287
在TCP连接开始到结束连接,之间可能会多次传输数据,也就是服务器和客户端之间可能会在连接过程中互相传输多条消息。理想状况是一方每发送一条消息,另一方就立即接收到一条,也就是一次write对应一次read。但是,现实不总是按照剧本来走。MINA官方文档节选:TCP guarantess deliver...
分类:
Web程序 时间:
2014-08-26 11:02:47
阅读次数:
346
MINA、Netty、Twisted为什么放在一起学习?首先,不妨先看一下他们官方网站对其的介绍:MINA:Apache MINA is a network application framework which helps users develop high performance and hi...
分类:
Web程序 时间:
2014-08-25 16:21:44
阅读次数:
289
在前面的博文中,介绍一些消息分割的方案,以及MINA、Netty、Twisted针对这些方案提供的相关API。例如MINA的TextLineCodecFactory、PrefixedStringCodecFactory,Netty的LineBasedFrameDecoder、LengthFieldBasedFrameDecoder,Twisted的LineOnlyReceiver、Int32StringReceiver。
除了这些方案,还有很多其他方案,当然也可以自己定义。在这里,我们定制一个自己的方案,并...
分类:
Web程序 时间:
2014-08-25 13:25:14
阅读次数:
206
在上一篇博文中,有介绍到用换行符分割消息的方法。但是这种方法有个小问题,如果消息中本身就包含换行符,那将会将这条消息分割成两条,结果就不对了。
本文介绍另外一种消息分割方式,即上一篇博文中讲的第2条:use a fixed length header that indicates the length of the body,用一个固定字节数的Header前缀来指定Body的字节数,以此来分割消息。...
分类:
Web程序 时间:
2014-08-22 10:51:06
阅读次数:
265
在TCP连接开始到结束连接,之间可能会多次传输数据,也就是服务器和客户端之间可能会在连接过程中互相传输多条消息。理想状况是一方每发送一条消息,另一方就立即接收到一条,也就是一次write对应一次read。但是,现实不总是按照剧本来走。...
分类:
Web程序 时间:
2014-08-21 15:06:14
阅读次数:
321
twisted的Protocol.datareceived()能处理接收到的原始数据,既然是原始的,就可能和应用层定义的“包”有差异,即粘包和分包难以避免 ????看一段处理粘包的代码:? ? #!/usr/bin/env?python
#cod...
分类:
编程语言 时间:
2014-08-21 13:31:14
阅读次数:
355