在上一篇博文中,有介绍到用换行符分割消息的方法。但是这种方法有个小问题,如果消息中本身就包含换行符,那将会将这条消息分割成两条,结果就不对了。
本文介绍另外一种消息分割方式,即上一篇博文中讲的第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
netty作为nio应用的典范,在很多设计方面都值得我们在程序开发中学习。 1.事件驱动,三种事件的传播机制。一种是在channel上触发,一种是在pipeline上触发,一种是在context上触发。其中前两种触发的事件都会在整个pipeline上进行传播,第三种事件在context后的handl...
分类:
Web程序 时间:
2014-08-05 18:31:29
阅读次数:
333
这是一个出于兴趣而在业余时间写的项目,初版的目的在于了解游戏服务端的一些设计思路,所以基本是想到什么写下什么,并没有做过于细节的设计,和过早的优化。 在这个版本里面,主要要完成以下功能: 定制简单的通信协议 处理简单的游戏逻辑 可运行的Server和Client 一. 服务端设计 整个服务端暂且分成...
分类:
Web程序 时间:
2014-08-05 00:33:38
阅读次数:
322