在同步阻塞的网络编程中,代码都是按照TCP操作顺序编写的,即创建连接、多次读写、关闭连接,这样很容易判断这一系列操作是否是同一个连接。而在事件驱动的异步网络编程框架中,IO操作都会触发一个事件调用相应的事件函数,例如接收到客户端的新数据,会调用messageReceived(MINA)、channelRead(Netty)、dataReceived(Twisted),同一个TCP连接的多次请求和多个客户端请求都是一样的。
那么如何判断多次请求到底是不是同一个TCP连接,如何保存连接相关的信息?针对这个问题,...
分类:
Web程序 时间:
2014-09-10 14:13:00
阅读次数:
208
Netty3 源码分析 - Channel
何为通道(Channel)?代表的是一个网络套接字的连接点(nexus)。
一个通道抽象的内容包括:
1)当前通道状态,是否打开,是否绑定等;
2)通道的配置参数信息,如套接字缓冲区大小;
3)通道支持的IO操作;
4)处理和这个Channel相关的IO事件和请求的ChannelPipeline。
在Netty中所有的IO操...
分类:
Web程序 时间:
2014-09-09 16:03:08
阅读次数:
300
Netty的主页:http://netty.io/index.html使用的Netty的版本:netty-4.0.23.Final.tar.bz2‐ 15-Aug-2014 (Stable, Recommended)实现一个简单的Http请求及响应过程:1、Client向Server发送http请求...
分类:
Web程序 时间:
2014-09-06 16:03:43
阅读次数:
341
jboss 6.2 EAP上 DuplicateServiceException错误的解决办法
分类:
Web程序 时间:
2014-08-30 12:36:59
阅读次数:
406
之前使用过MINA框架,感觉效率非常好,使用长连接可以支持10万次以上的并发。 今天尝试使用了Netty框架,感觉使用上也非常方便,具体效率问题,在接下来的博客会详细解读:NioServerSocketChannelFactory创建服务端的ServerSocketChannel,采用多线程执行非阻...
分类:
编程语言 时间:
2014-08-29 21:20:08
阅读次数:
275
protobuf是谷歌的Protocol Buffers的简称,用于结构化数据和字节码之间互相转换(序列化、反序列化),一般应用于网络传输,可支持多种编程语言。protobuf如何使用这里不再介绍,本文主要介绍在MINA、Netty、Twisted中如何使用protobuf,不了解protobuf的...
分类:
Web程序 时间:
2014-08-29 10:56:27
阅读次数:
263
OneCoder原创系列:Java NIO框架Netty教程(一) – Hello NettyJava NIO框架Netty教程(二) – 白话概念Java NIO框架Netty教程(三)- 字符串消息收发Java NIO框架Netty教程(四)- ChannelBufferJava NIO框架Ne...
分类:
Web程序 时间:
2014-08-29 10:49:37
阅读次数:
253
Netty源码解读之线程
本文主要测试代码如下:
先关注下NioEventLoopGroup和NioEventLoop类关系:
在创建NioEventLoopGroup对象之前先执行NioEventLoopGroup父类静态模块,计算出默认的线程个数,电脑配置为四线程,所以默认为8个线程。
进入NioEventLoopGroup构造,并且创建java.nio.cha...
分类:
编程语言 时间:
2014-08-28 13:20:19
阅读次数:
318
在前面的博文中,介绍一些消息分割的方案,以及MINA、Netty、Twisted针对这些方案提供的相关API。例如MINA的TextLineCodecFactory、PrefixedStringCodecFactory,Netty的LineBasedFrameDecoder、LengthFieldB...
分类:
Web程序 时间:
2014-08-28 11:00:19
阅读次数:
246