您的位置:首页 > 其它

netty-学习笔记

2015-09-21 22:48 253 查看
零、socket:
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把他们封装好了,然后处理内容我们需要自己实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: