netty-学习笔记
2015-09-21 22:48
253 查看
零、socket:
http://haohaoxuexi.iteye.com/blog/1979837
一、NIO(1.0)非阻塞
NIO的特点:
Buffer,缓冲区
Channel,管道
Selector,多路复用选择器
NIO的步骤:
View Code
(NO RUN SUCCESS)
六、项目中如何使用netty
在pns(TCP是同步的)和统一配置中使用netty,主要使用了netty的异步和socket。
七、关于netty的资料
《netty权威指南》
http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html http://www.cnblogs.com/NanguoCoffee/archive/2010/12/10/1902491.html
八、netty的相关讨论
为什么说netty是异步的?允许客户端最大的同时连接数:服务器有开放那么多文件句柄数 支持那么多长连接 只要服务器资源够就行,另外tomcat自己也会限制连接数。netty的异步体现在:1、服务端不持有连接,使用的是轮询的方法2、channel通道是异步的3、使用了channel future回调
netty如何编码解码,TCP自带了拆包粘包的功能,netty把他们封装好了,然后处理内容我们需要自己实现
http://haohaoxuexi.iteye.com/blog/1979837
一、NIO(1.0)非阻塞
NIO的特点:
Buffer,缓冲区
Channel,管道
Selector,多路复用选择器
NIO的步骤:
package com.wanghongye.Netty; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerAdapter; import io.netty.channel.ChannelHandlerContext; public class TimeChannelClientHandler extends ChannelHandlerAdapter { private final ByteBuf buf; public TimeChannelClientHandler() { byte[] req = "QUERY TIME ORDER".getBytes(); buf = Unpooled.buffer(req.length); buf.writeBytes(req); } public void channelActive(ChannelHandlerContext ctx) { ctx.writeAndFlush(buf); } public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { ByteBuf byteBuf = (ByteBuf) msg; byte[] req = new byte[byteBuf.readableBytes()]; byteBuf.readBytes(req); String body = new String(req, "UTF-8"); System.out.println("###########" + body); } public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { ctx.close(); } }
View Code
(NO RUN SUCCESS)
六、项目中如何使用netty
在pns(TCP是同步的)和统一配置中使用netty,主要使用了netty的异步和socket。
七、关于netty的资料
《netty权威指南》
http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html http://www.cnblogs.com/NanguoCoffee/archive/2010/12/10/1902491.html
八、netty的相关讨论
为什么说netty是异步的?允许客户端最大的同时连接数:服务器有开放那么多文件句柄数 支持那么多长连接 只要服务器资源够就行,另外tomcat自己也会限制连接数。netty的异步体现在:1、服务端不持有连接,使用的是轮询的方法2、channel通道是异步的3、使用了channel future回调
netty如何编码解码,TCP自带了拆包粘包的功能,netty把他们封装好了,然后处理内容我们需要自己实现
相关文章推荐
- ubuntu下使用strcat 出现的神奇事情
- nyoj 63 小猴子下落【二叉树】
- 测试显示性能-基于Android M 开发者预览版
- js实现滚动条边滚动边加载数据
- iOS学习笔记--如何使九宫格布局图片的显示自适应大小
- 运维
- SQL Server 2005 Management Studio Express企业管理器将英文变成简体中文版的实现方法
- C语言程序初体验-第四课-第二题:计算并联电阻R的阻值
- 配置SQl Server 2008R2端口号详解
- 移动IM开发学习<1>
- JMX监控 Tomcat Glassfish JBoss WebLogic WebSphere
- 百灯熄灭问题--数组的应用
- Hdu 5454,Minimum Cut,最近公共祖先+dfs遍历
- Unity UGUI 新手指引
- Pykd——Python extension for WinDbg
- C
- C#分布式缓存Couchbase
- poj1737 Connected Graph
- 【CSS】盒模型+选择器(你选择的要操作的对象)
- 年终巨献 史上最全 ——LINQ to SQL语句