ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### ChannelFuture ``` 增强版ChannelFuture,ChannelFutureListener提供的通知机制消除了手动检查对应操作是否完成的必要 1. 通过提供的方法,我们可以注册一个或者多个ChannelFutureListener实例 2. 操作完成时将会调用监听器的回调方法operationComplete() 3. 监听器判断该操作时成功了还是失败了,失败了产生Throwable ``` ~~~ final Channel channel = null; //省略 // 异步连接远程节点 final ChannelFuture future = channel.connect(new InetSocketAddress("", 10000)); // 注册一个ChannelFutureListener,以便在操作完成时获取通知 future.addListener(new ChannelFutureListener() { public void operationComplete(ChannelFuture channelFuture) throws Exception { if (channelFuture.isSuccess()){ // 操作成功,创建ByteBuf持有数据 ByteBuf buf = Unpooled.copiedBuffer("hello", Charset.defaultCharset()); // 将数据发送到远程节点,返回一个ChannelFuture ChannelFuture wf = channelFuture.channel().writeAndFlush(buf); }else { // 发生错误 Throwable cause = channelFuture.cause(); cause.printStackTrace(); } } }); ~~~