当前位置: 首页 > news >正文

网站续费怎么做科技成果转化平台

网站续费怎么做,科技成果转化平台,seo优化收费,近期新闻热点说明 io.netty.channel.ChannelInitializer是一个特殊的ChannelInboundHandler。它的主要作用是向 Channel对应的ChannelPipeline中增加ChannelHandler。执行完ChannelInitializer的initChannel(C ch)函数以后,ChannelInitializer就会从ChannelPipeline自动删除自己…

说明

io.netty.channel.ChannelInitializer是一个特殊的ChannelInboundHandler。它的主要作用是向 Channel对应的ChannelPipeline中增加ChannelHandler。执行完ChannelInitializer的initChannel(C ch)函数以后,ChannelInitializer就会从ChannelPipeline自动删除自己,防止重复进入。
一般是通过Bootstrap.handler(ChannelHandler) 、ServerBootstrap.childHandler(ChannelHandler)的方式分别在客户端、服务端中将ChannelInitializer这个ChannelHandler增加到ChannelPipeline中。

示例

思路

我们来验证下ChannelInitializer是否会被自动删除。我们在ChannelInitializer的initChannel(C ch)函数末尾打印出来当前ChannelPipeline中已经添加的ChannelHandler名称;在Channel连接成功以后,再打印出来当前ChannelPipeline中已经添加的ChannelHandler名称,两者对照下,就能看出来是否被自动删除了。

代码片段

package com.thb.power.terminal;import java.io.BufferedReader;
import java.io.InputStreamReader;import com.thb.power.packet.register.RegisterRequestPacket;import io.netty.bootstrap.Bootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;/*** 主函数* @author thb**/
public class Terminal {// 要连接的服务端的host static final String HOST = System.getProperty("host", "127.0.0.1"); // 要连接的服务端的端口号 static final int PORT = Integer.parseInt(System.getProperty("port", "22335"));public static void main(String[] args) throws Exception {// 配置客户端EventLoopGroup group = new NioEventLoopGroup();try {Bootstrap b = new Bootstrap();b.group(group).channel(NioSocketChannel.class).option(ChannelOption.TCP_NODELAY, true).handler(new TerminalInitializer());// 启动客户端Channel ch = b.connect(HOST, PORT).sync().channel();		// 查看ChannelPipeline添加的ChannelHandler名称System.out.println("after channel connected:");for (String name : ch.pipeline().names()) {System.out.println("handler name: " + name);} ChannelFuture lastWriteFuture = null;BufferedReader in = new BufferedReader(new InputStreamReader(System.in));System.out.println("please input(register):");for (;;) {String line = in.readLine();if (line == null) {break;}				// 如果用户输入register,表示命令客户端发送注册请求给服务器if (line.toLowerCase().equals("register")) {RegisterRequestPacket registerRequest = new RegisterRequestPacket();// 返回的ByteBuf存放着注册请求的数据ByteBuf buf = registerRequest.build(ch);lastWriteFuture = ch.writeAndFlush(buf);						}}if (lastWriteFuture != null) {lastWriteFuture.sync();}} finally {// 关闭event loop以便终止所有的线程group.shutdownGracefully();}}}// ChannelInitializer的子类
package com.thb.power.terminal;import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.logging.LogLevel;
import io.netty.handler.logging.LoggingHandler;public class TerminalInitializer extends ChannelInitializer<SocketChannel> {@Overridepublic void initChannel(SocketChannel ch) throws Exception {ChannelPipeline p = ch.pipeline();p.addLast(new LoggingHandler(LogLevel.INFO));// 查看ChannelPipeline添加的ChannelHandler名称System.out.println("in initChannel(SocketChannel ch) method of TerminalInitializer:");for (String name : ch.pipeline().names()) {System.out.println("handler name: " + name);} }
}

运行输出

在这里插入图片描述

从上面输出可以看出,ChannelInitializer开始被添加到ChannelPipeline中,后来又被自动删除了。

http://www.yayakq.cn/news/73135/

相关文章:

  • 北京微信网站制作费用诚客网站建设
  • 婚纱摄影网站建设大概多少钱销售珍珠网站建设策划书
  • 做网站的需要注册商标吗wordpress美文主题
  • 淄博网站优化wordpress 页面位置
  • 网页制作创建站点内容关键词seo排名怎么样
  • .网站空间iis网站拒绝显示此网页
  • 网络 网站建设新网站注册
  • WordPress5分钟建站百度快照优化推广
  • 长春专业网站建设价格营销型网站建设设计服务
  • 网站需要维护吗wordpress显示浏览量
  • 网站开发流程图六盘水南宁网站建设
  • 云服务器上放多个网站wordpress钩子函数
  • 嘉兴网嘉兴网站建设图片设计软件免费版
  • 做画册封面的网站足彩网站怎样做推广
  • 网站建设上市河南建造师网官网
  • seo品牌优化百度资源网站推广关键词排名做网站那种语言好
  • 吉林省建设厅网站首页购物中心招商信息发布平台
  • 网站开发硬件成本wordpress增加边栏
  • 做电影网站需要服务器吗大型做网站
  • 一键上传淘宝网站开发庆阳网站设计与建设
  • 车陂手机网站开发公司网站建设费计入科目
  • 企业网站模板源码免费购物网站详细设计
  • 做网站用vue还是用jquery延安怎么做网络推广
  • 电子商务网站规划与网页制作焦作百姓网
  • 网站多久被百度收录wordpress 导出 新闻
  • 福清建设银行网站徐州市建设局招投标网站
  • 株洲市住房和城乡建设厅网站教育网站制作论文
  • 网站模板打包下载公司建网站多少钱一个
  • 远象建设 网站seo推广优化的方法
  • 重视企业网站3d建模一般学多久