怎么手机登录不了淘宝(淘宝帐号为什么被限制登录)
怎么手机登录不了淘宝,淘宝帐号为什么被限制登录? 淘宝账号被限制登录的原因有很多,以下列举了一些可能的原因:1. 多次输入错误登录密码或支付密...
2023-04-21
本节主要讲解服务端主启动类 ServerBootstrap 的核心 API 的使用。
ServerBootstrap 的用法基本上都是固定的,一般对于新接触 Netty 的同学来说,会觉得这些模板代码比较多,难以理解。我们主要记住几个核心配置即可。
| 方法 | 说明 |
| group() | 用来指定线程模型 |
| channel() | 用来指定 IO 模型 |
| handler() | 用来指定服务端通道需要处理的业务逻辑(了解) |
| childHandler() | 用来指定客户端通道需要处理的业务逻辑(掌握) |
| attr() | 给服务端通道绑定自定义属性(了解) |
| childAttr() | 给客户端通道绑定自定义属性(掌握) |
| option() | 给服务端通道设置配置(了解) |
| childOption() | 给客户端通道设置配置(了解) |
| bind() | 用来绑定端口号 |
说明:客户端和服务端连接之后,会维持一个 Channel 通道,可以给其指定逻辑处理器和属性配置;当然,服务端启动的时候它也是一个特殊的 Channel 通道。
在开发当中,需要我们去自定义的方法主要是 childHandler () 和 childAttr () 这两个。childHandler () 用来绑定业务逻辑器,childAttr () 用来设置 Channel 属性。比如:绑定用户身份信息。其它方法的使用相对固定,了解即可。

bind () 主要用来绑定本地端口号。
实例:
ChannelFuture future=serverBootstrap.bind(80);future.addListener(new GenericFutureListener<Future<? super Void>>() { public void operationComplete(Future<? super Void> future) { if (future.isSuccess()) { System.out.println("端口绑定成功!"); } else { System.err.println("端口绑定失败!"); } }});代码升级,如果绑定的端口已经存在,则端口号递增。当然,实际情况很少会去递增端口号,一般都是上线之前确定端口号,否则客户端不知道端口号,无法连接。
实例:
private static void bind(ServerBootstrap serverBootstrap, final int port) { ChannelFuture future=serverBootstrap.bind(port); future.addListener(new GenericFutureListener<Future<? super Void>>() { public void operationComplete(Future<? super Void> future) { if (future.isSuccess()) { System.out.println("端口[" + port + "]绑定成功!"); } else { System.err.println("端口[" + port + "]绑定失败!"); //递归重新绑定端口号 bind(serverBootstrap, port + 1); } } });}attr () 方法可以给服务端的 channel,也就是 NioServerSocketChannel 指定一些自定义属性,可以通过 channel.attr() 取出这个属性。
实例:
//省略了其它模板代码serverBootstrap.attr(AttributeKey.newInstance("serverName"), "nettyServer")总结,一般来说 attr () 运用得比较少,了解即可。
childAttr 可以给每一条连接指定自定义属性,可以通过 channel.attr() 取出该属性。
实例:
//省略了其它模板代码serverBootstrap.childAttr(AttributeKey.newInstance("clientKey"), "clientValue")总结,常见的运用场景,客户端登录成功之后,给其对应的 Channel 绑定标识,下次只需要判断该 Channel 是否有标识即可知道其是否已经登录。
handler () 用于指定在服务端启动过程中的一些逻辑。
实例:
//省略了其它模板代码serverBootstrap.handler(new ChannelInitializer<NioServerSocketChannel>() { protected void initChannel(NioServerSocketChannel ch) { System.out.println("服务端启动中"); }});总结,可以在服务端启动的过程中做一些初始化方面的工作,比如,读取数据库的配置数据放到缓存当中,这个作为了解即可。
childHandler () 用于指定处理新连接数据的读写处理逻辑。
实例:
//省略了其它模板代码serverBootstrap.childHandler(new ChannelInitializer<NioSocketChannel>() { protected void initChannel(NioSocketChannel ch) { //责任链,指定自定义处理业务的 Handler ch.pipeline().addLast(new NettyServerHandler()); }});总结,这个是核心,主要管理业务逻辑处理双向链表,后面会具体讲解
option () 给服务端 channel 设置一些属性,最常见的就是 so_backlog。
实例:
//省略了其它模板代码serverBootstrap.option(ChannelOption.SO_BACKLOG, 1024)表示系统用于临时存放已完成三次握手的请求的队列的最大长度,如果连接建立频繁,服务器处理创建新连接较慢,可以适当调大这个参数。其实,客户端请求在服务端也是排队执行的,服务端的两大线程组分别监听客户端连接和处理客户端连接,一旦并发量很高的时候,服务端处理不过来,则会把等待处理的请求放入到临时队列里面,这个跟 Java 线程池的思想是一样的。
childOption () 给每条连接设置一些 TCP 底层相关的属性。
实例:
//省略了其它模板代码serverBootstrap .childOption(ChannelOption.SO_KEEPALIVE, true) .childOption(ChannelOption.TCP_NODELAY, true)代码说明:
本节学习的核心知识点掌握,具体如下:
以上内容就是为大家推荐的bootstrap登录模板实例(html登录注册界面模板)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:bootstrap登录模板实例(html登录注册界面模板)
本文地址:https://www.xiaoyin02.com/shcs/118505.html
相关文章
怎么手机登录不了淘宝,淘宝帐号为什么被限制登录? 淘宝账号被限制登录的原因有很多,以下列举了一些可能的原因:1. 多次输入错误登录密码或支付密...
2023-04-21
手机怎么改微博手机号,电脑怎么更改微博登录名? 登陆名就是你开通微博注册用的账号名,改不了。 你可以改你的微博的用户名。 举例说明: 登陆名就...
2023-04-21
手机验证码怎么登录,如何使用手机短信验证码登陆? 如何使用手机短信验证码登陆? 你这个提问范围有点大,没具体说明要登哪个网页还是登哪个APP软...
2023-04-21
华为手机怎么密码忘了,华为手机没有账号登录密码忘了怎么解锁? 可以参考以下方法解决: 1、手机在关机状态、不插USB线的情况下,同时长按音键上键...
2023-04-21
QQ的手机型号怎么改,qq怎么看手机型号登录? 步骤如下: 1、用手机登陆到手机版QQ空间中,点击进入【我的空间】-----【个性化中心】。 2、在个性化中心...
2023-04-21
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)