首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

第一个netty4的例证

2013-11-18 
第一个netty4的例子这个例子参与http://netty.io/wiki/user-guide-for-4.x.html文档实现,主要是服务器接收

第一个netty4的例子

这个例子参与http://netty.io/wiki/user-guide-for-4.x.html文档实现,主要是服务器接收并打印命令行输入的字符,例子简单直接上代码:

import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.ChannelInboundHandlerAdapter;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOption;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.socket.nio.NioServerSocketChannel;import io.netty.util.ReferenceCountUtil;public class DemoServer1 {public static void main(String[] args) throws InterruptedException {ServerBootstrap bootstrap = new ServerBootstrap();EventLoopGroup bossGroup = new NioEventLoopGroup(1); // (1)    EventLoopGroup workerGroup = new NioEventLoopGroup(1);    try{    bootstrap.group(bossGroup, workerGroup);    bootstrap.channel(NioServerSocketChannel.class);       bootstrap.childHandler(new ChannelInitializer<SocketChannel>(){@Overrideprotected void initChannel(SocketChannel ch) throws Exception {ch.pipeline().addLast(new MyHandler());}        });    bootstrap.option(ChannelOption.SO_BACKLOG, 128);    bootstrap.childOption(ChannelOption.SO_KEEPALIVE, true);    ChannelFuture cfuture = bootstrap.bind(8080).sync();   cfuture.channel().closeFuture().sync();    }finally{    workerGroup.shutdownGracefully();    bossGroup.shutdownGracefully();    }    }}class MyHandler extends ChannelInboundHandlerAdapter  {private int index = 1;@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { cause.printStackTrace();ctx.close();}@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg)throws Exception {//super.channelRead(ctx, msg);  try {  System.out.println(((ByteBuf)msg).readableBytes()); // System.out.println(((ByteBuf)msg).toString()); System.out.println( ((ByteBuf)msg).toString(io.netty.util.CharsetUtil.US_ASCII)); System.out.println( ((ByteBuf)msg).toString(io.netty.util.CharsetUtil.US_ASCII));  //ctx.write(msg);  //ctx.flush();     } finally {        ReferenceCountUtil.release(msg);    }}@Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {super.channelActive(ctx);}}

???? 服务启动后,直接使用telnet就可以和服务进行通信。?

??? 后边的章节写一下Netty4怎么实现整个NIO通信过程。

?

热点排行