netty4与protocol buffer结合简易教程...
分类:
Web程序 时间:
2014-08-25 11:57:54
阅读次数:
258
首先我们必须知道Tcp粘包和拆包的,TCP是个“流”协议,所谓流,就是没有界限的一串数据,TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际数据进行包的划分,一个完整的包可能会被拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包进行发送。这里引用Netty官网的U...
分类:
Web程序 时间:
2014-08-23 21:28:21
阅读次数:
541
在上一篇博文中,有介绍到用换行符分割消息的方法。但是这种方法有个小问题,如果消息中本身就包含换行符,那将会将这条消息分割成两条,结果就不对了。
本文介绍另外一种消息分割方式,即上一篇博文中讲的第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
本实例主要参考的是官网的examples:点击这里
使用场景:客户端向Netty请求一个文件,Netty服务端下载指定位置文件到客户端。
本实例使用的是Http协议,当然,可以通过简单的修改即可换成TCP协议。
需要注意本实例的关键点是,为了更高效的传输大数据,实例中用到了ChunkedWriteHandler编码器,它提供了以zero-memory-copy方式写文件。
第一步:先写一个...
分类:
Web程序 时间:
2014-08-19 12:55:04
阅读次数:
387
MINA、Netty、Twisted为什么放在一起学习?它们的共同特点:event-driven以及asynchronous。它们都是事件驱动、异步的网络编程框架。由此可见,它们之间的共同点还是很明显的。所以我这里将这三个框架放在一起,实现相同的功能,不但可以用少量的精力学三样东西,而且还可以对它们之间进行各方面的对比。...
分类:
Web程序 时间:
2014-08-15 12:57:19
阅读次数:
272
In previous post?Let‘s do our own full blown HTTP server with Netty 4?you and I were excited by creation of our own web server.?So far so good. But how good?? Given ordinary notebook? cat?/pr...
分类:
其他好文 时间:
2014-08-12 19:13:14
阅读次数:
300
1、在没有任何encoder、decoder的情况下,Netty发送接收数据都是按照ByteBuf的形式,其它形式都是不合法的。 ByteBuf?result?=?(ByteBuf)?msg;
byte[]?data?=?new?byte[result.readableBytes()];
result....
分类:
Web程序 时间:
2014-08-12 17:47:14
阅读次数:
198
最近在阅读开源项目里,发现有几个工程都不尽相同地使用LinkedTransferQueue这个数据结构。比如netty,grizzly,xmemcache,Bonecp。Bonecp还扩展出一个BoundTransferQueue。
LinkedTransferQueue最早出现在JSR66R(一个轻量级并行执行框架)包中,目前已合并到JDK7中。JSR66的负责人正是大名顶顶的Doug Lea...
分类:
其他好文 时间:
2014-08-11 12:01:54
阅读次数:
254
一. 简单介绍一下protobuf:Protocol Buffers are a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications p...
分类:
Web程序 时间:
2014-08-08 17:43:36
阅读次数:
243