NIO编程之Netty入门篇V1

NIO编程之Netty入门篇V1

ID:42604212

大小:179.19 KB

页数:10页

时间:2019-09-18

NIO编程之Netty入门篇V1_第1页
NIO编程之Netty入门篇V1_第2页
NIO编程之Netty入门篇V1_第3页
NIO编程之Netty入门篇V1_第4页
NIO编程之Netty入门篇V1_第5页
资源描述:

《NIO编程之Netty入门篇V1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、深圳三代人科技有限公司NIO编程之Netty入门篇看到这个标题,可能你会感到疑惑,NIO?Netty?是什么东西。想要真正学习Netty的知识,就必须对这几个概念有一定的了解。NIO:有人称之为NewI/O,原因在于它相对于之前的I/O类库是新增的,这是它的官方叫法。但是,由于之前老的I/O类库是阻塞I/O,NewI/O类库的目标就是要让Java支持非阻塞I/O,所以,更多的人喜欢称之为非阻塞I/O(Non-blockI/O)。由于非阻塞I/O更能体现NIO的特点,所以,这里的NIO指的是非阻塞I/O。Netty:Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、

2、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。到这里,应该对这两个概念有了一定的了解,那接下来,进行Netty的学习。配置pom文件:io.nettynetty-all4.0.31.Final先上代码,对Netty的开发有一个第一印象。代码清单1-1EchoServer服务端EchoServer/**  * Netty 服务端代码  * */publicclassEchoS

3、erver{publicvoidbind(intport)throwsException{//配置服务器的NIO线程组EventLoopGroupbossGroup=newNioEventLoopGroup();EventLoopGroupworkerGroup=newNioEventLoopGroup();try{//启动NIO服务端的辅助启动类ServerBootstrapb=newServerBootstrap();b.group(bossGroup,workerGroup).channel(NioServerSocketChannel.class).option(ChannelO

4、ption.SO_BACKLOG,1024).handler(newLoggingHandler(LogLevel.INFO)).childHandler(newChannelInitializer(){@OverrideprotectedvoidinitChannel(SocketChannelch)throwsException{System.out.println("报告");System.out.println("信息:有一客户端链接到本服务端");System.out.println("IP:"+ch.localAddress().getHostN

5、ame());System.out.println("Port:"+ch.localAddress().getPort());深圳三代人科技有限公司System.out.println("报告完毕");ch.pipeline().addLast(newLengthFieldBasedFrameDecoder(65535,0,4,0,4));ch.pipeline().addLast(newLengthFieldPrepender(4));//解码器Stringch.pipeline().addLast(newStringDecoder(Charset.forName("UTF-8")))

6、;//编码器Stringch.pipeline().addLast(newStringEncoder(Charset.forName("UTF-8")));ch.pipeline().addLast(newProtocolDecode());ch.pipeline().addLast(newProtocolEncode());ch.pipeline().addLast(newEchoServerHandler());}});//绑定端口,同步等待成功//ChannelFuture用于异步操作的通知回调ChannelFuturef=b.bind(port).sync();//等待服务器监听

7、端口关闭f.channel().closeFuture().sync();}finally{//优雅退出,释放线程池资源bossGroup.shutdownGracefully();workerGroup.shutdownGracefully();}}publicstaticvoidmain(String[]args)throwsException{intport=8082;if(args!=null&&args.length>0)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。