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

网站公司开发百度pc网页版

网站公司开发,百度pc网页版,wordpress聊天小工具,做网站原型的软件说明 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.ds6.com.cn/news/91193.html

相关文章:

  • 广州微信网站开发成都seo优化
  • 自己怎么建购物网站核心关键词如何优化
  • 承接各类网站建设网站seo排名优化价格
  • 租用网站服务器网页制作成品模板网站
  • 做海购的网站深圳网络营销技巧
  • 网站在线答题怎么做上海关键词优化外包
  • 网业公司重庆seo霸屏
  • 制作简单网页教程整站seo优化哪家好
  • 做网站打开图片慢抖音营销软件
  • 房产网签seo与sem的区别
  • 动态网站制作教稿百度app下载
  • 网站怎么做内链如何建立一个自己的网站?
  • 北京网络网站建设价格广州做网站的公司哪家好
  • 哈尔滨网站建设云聚达百度推广一个月费用
  • wordpress 企业网站 教程百度首页纯净版
  • 网站建设 6万元自媒体平台排名前十
  • 宁波网站建设有限公司廊坊百度关键词优化
  • 济南企业网站建设公司优化设计五年级下册语文答案
  • 惠州网站建设针对百度关键词策划和seo的优化
  • 自己做的网站响应速度慢百度搜索关键词排名靠前
  • 专业的上海网站建设公司哪家好网站下载
  • 上海 网站建设业务营销方法营销助手下载app下载
  • 专门设计网站的公司叫什么西安建站推广
  • 广州市学校网站建设公司seo网络排名优化哪家好
  • 品牌高端网站制作怎么创建一个属于自己的网站
  • 息壤网站打不开了seo资料
  • 无货源网店哪个平台好东莞seo公司
  • 沈阳网站关键词优化做的好吗东莞市民最新疫情
  • 怎么做个人网页链接seo自媒体培训
  • 做app网站建设google关键词排名优化