Netty入门(三)构成部分
2018-06-18 01:18:44来源:未知 阅读 ()
该节主要讲解 Netty 的构成部分。
一、Channel
它代表一个用于连接到实体如硬件设备、文件、网络套接字或程序组件,能够执行一个或多个不同的 I/O 操作的开放连接。可以比作传入和传出数据的传输工具。
二、Callback(回调)
它就是一个方法,提供给另一种方法作为引用,这样后者就可以在某个合适的时间调用前者。比如下面的代码:
1 public class DiscardServerHandler extends ChannelInboundHandlerAdapter { 2 3 /** 4 * 收到数据时调用 5 */ 6 @Override 7 public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { 8 // TODO 数据处理 9 } 10 }
当服务器收到消息时,会自动调用 ChannelRead 方法,因此我们可以重写该方法来实现对收到数据的处理。
三、Future
它提供了另外一种通知应用操作已经完成的方式。每个 Netty 的出站(outbound) I/O 操作都会返回一个 ChannelFuture ,它允许一个或者多个 ChannelFutureListener 实例,回调方法 operationComplete() 会在操作完成时调用,下面为示例代码:
1 // 启动客户端,客户端用connect连接 2 ChannelFuture f = b.connect(host, port).sync(); 3 f.addListener(new ChannelFutureListener() { 4 public void operationComplete(ChannelFuture future) throws Exception { 5 if(future.isSuccess()) { // 连接成功 6 ByteBuf buf = Unpooled.copiedBuffer("hello", // 写数据 7 Charset.defaultCharset()); 8 ChannelFuture wf = future.channel().writeAndFlush(buf); // 发送数据 9 } else { 10 // 打印错误 11 Throwable cause = future.cause(); 12 cause.printStackTrace(); 13 } 14 } 15 });
上面的代码首先连接到远程地址,当连接完成时,检查连接状态,若成功发送 hello,否则抛出错误。
四、Event 和 Handler
没看懂,以后补。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java开源生鲜电商平台-盈利模式详解(源码可下载)
下一篇:HashMap分析
- logstash系列-入门整理 2020-06-10
- Java 入门教程 2020-06-09
- 这可能是目前最透彻的Netty讲解了... 2020-06-08
- RocketMQ4.4 入门进阶+实战 2020-06-08
- 因为 MongoDB 没入门,我丢了一份实习工作 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash