日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【Netty】Netty 核心组件 ( ServerBootstrap | Bootstrap )

發(fā)布時(shí)間:2025/6/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Netty】Netty 核心组件 ( ServerBootstrap | Bootstrap ) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、 ServerBootstrap / Bootstrap 引導(dǎo)組件
  • 二、 服務(wù)器端 ServerBootstrap 引導(dǎo)組件
  • 三、 客戶端 Bootstrap 引導(dǎo)組件





一、 ServerBootstrap / Bootstrap 引導(dǎo)組件



ServerBootstrap / Bootstrap 引導(dǎo)組件 :


① 服務(wù)器 / 客戶端 配置 : ServerBootstrap / Bootstrap 組件的作用是配置 Netty 服務(wù)器 / 客戶端的各種配置 ;

② 關(guān)聯(lián)各種組件 : 該 ServerBootstrap / Bootstrap 組件將線程池 ( NioEventLoopGroup ) , 套接字通道 ( NioServerSocketChannel / SocketChannel ) , 處理者 ( Handler ) , 通道初始化器 ( ChannelInitializer ) 關(guān)聯(lián)在一起 ;

③ ServerBootstrap : 服務(wù)器端程序的引導(dǎo)組件 ;

④ Bootstrap : 客戶端程序的引導(dǎo)組件 ;





二、 服務(wù)器端 ServerBootstrap 引導(dǎo)組件



ServerBootstrap 常用方法 : 該組件類是服務(wù)器端使用的引導(dǎo)組件 ;


1 . 關(guān)聯(lián)線程池 : 關(guān)聯(lián)服務(wù)器端的 BossGroup 和 WorkerGroup 線程池 ( NioEventLoopGroup 類型 ) , parentGroup 參數(shù)是 BossGroup 負(fù)責(zé)建立客戶端連接 , childGroup 參數(shù)是 WorkerGroup 負(fù)責(zé)與客戶端進(jìn)行數(shù)據(jù)交互 ;

public ServerBootstrap group(EventLoopGroup parentGroup, EventLoopGroup childGroup)

2 . 設(shè)置通道類 : 設(shè)置服務(wù)器端的通道類型 , 一般設(shè)置 NioServerSocketChannel.class 值 ;

public B channel(Class<? extends C> channelClass)

3 . 添加 BossGroup 線程池配置 : 設(shè)置服務(wù)器端的配置 , ChannelOption option 參數(shù)是設(shè)置的操作類型 , T value 參數(shù)設(shè)置參數(shù)值 ; 如 bootstrap.option(ChannelOption.SO_BACKLOG, 128) 就是設(shè)置線程隊(duì)列維護(hù)的連接個(gè)數(shù) ;

public <T> B option(ChannelOption<T> option, T value)

4 . 添加 WorkerGroup 線程池配置 : 設(shè)置服務(wù)器端的配置 , ChannelOption option 參數(shù)是設(shè)置的操作類型 , T value 參數(shù)設(shè)置參數(shù)值 ; 如 bootstrap.childOption(ChannelOption.SO_KEEPALIVE, true) 就是設(shè)置客戶端連接的狀態(tài)行為為保持連接狀態(tài) ;

public <T> ServerBootstrap childOption(ChannelOption<T> childOption, T value)

5 . 添加 BossGroup 線程池處理器 Handler : 給 BossGroup 線程池 ( NioEventLoopGroup 類型 ) 設(shè)置的處理器 , 該處理器需要用戶自定義 , 繼承 ChannelInboundHandlerAdapter 類 ;

public B handler(ChannelHandler handler)

6 . 添加 WorkerGroup 線程池處理器 ChildHandler : 給 WorkerGroup 線程池 ( NioEventLoopGroup 類型 ) 設(shè)置處理器 , 該處理器需要用戶自定義 , 繼承 ChannelInboundHandlerAdapter 類 ;

public ServerBootstrap childHandler(ChannelHandler childHandler)

7 . 綁定端口 : 服務(wù)器端的 ServerBootstrap 對(duì)象 , 調(diào)用 bind 方法 , 綁定本地的端口號(hào) , 然后監(jiān)聽(tīng)該端口的客戶端連接請(qǐng)求 ;

public ChannelFuture bind(int inetPort)

8 . 服務(wù)器端常用的 ServerBootstrap 設(shè)置代碼 :

// 1. BossGroup 線程池 : 負(fù)責(zé)客戶端的連接 EventLoopGroup bossGroup = new NioEventLoopGroup(1); // 2. WorkerGroup 線程池 : 負(fù)責(zé)客戶端連接的數(shù)據(jù)讀寫(xiě) EventLoopGroup workerGroup = new NioEventLoopGroup();// 3. 服務(wù)器啟動(dòng)對(duì)象, 需要為該對(duì)象配置各種參數(shù) ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(bossGroup, workerGroup) // 設(shè)置 主從 線程組 , 分別對(duì)應(yīng) 主 Reactor 和 從 Reactor.channel(NioServerSocketChannel.class) // 設(shè)置 NIO 網(wǎng)絡(luò)套接字通道類型.option(ChannelOption.SO_BACKLOG, 128) // 設(shè)置線程隊(duì)列維護(hù)的連接個(gè)數(shù).childOption(ChannelOption.SO_KEEPALIVE, true) // 設(shè)置連接狀態(tài)行為, 保持連接狀態(tài).childHandler( // 為 WorkerGroup 線程池對(duì)應(yīng)的 NioEventLoop 設(shè)置對(duì)應(yīng)的事件 處理器 Handlernew ChannelInitializer<SocketChannel>() {// 創(chuàng)建通道初始化對(duì)象@Overrideprotected void initChannel(SocketChannel ch) throws Exception {// 該方法在服務(wù)器與客戶端連接建立成功后會(huì)回調(diào)// 為 管道 Pipeline 設(shè)置處理器 Hanedlerch.pipeline().addLast(new ServerHandler());}});// 4. 綁定本地端口 ChannelFuture channelFuture = null;try {// 綁定本地端口, 進(jìn)行同步操作 , 并返回 ChannelFuturechannelFuture = bootstrap.bind(8888).sync();} catch (InterruptedException e) {e.printStackTrace();} finally {// 出現(xiàn)異常后, 優(yōu)雅的關(guān)閉bossGroup.shutdownGracefully();workerGroup.shutdownGracefully(); }



三、 客戶端 Bootstrap 引導(dǎo)組件



Bootstrap 常用方法 :


1 . 關(guān)聯(lián)線程池 : 關(guān)聯(lián)客戶端的 NioEventLoopGroup 線程池 , 客戶端只有一個(gè)線程池 , 只需要與服務(wù)器進(jìn)行數(shù)據(jù)讀寫(xiě)交互 , EventLoopGroup group 參數(shù)就是 NioEventLoopGroup 線程池 , 負(fù)責(zé)與客戶端進(jìn)行數(shù)據(jù)交互 ;

public B group(EventLoopGroup group)

2 . 設(shè)置通道類 : 設(shè)置客戶端的通道類型 , 一般設(shè)置 NioSocketChannel.class 值 ;

public B channel(Class<? extends C> channelClass)

3 . 設(shè)置 NioEventLoopGroup 線程池處理器 Handler : 為客戶端的 NioEventLoopGroup 線程池 設(shè)置處理器 , 該處理器需要用戶自定義 , 繼承 ChannelInboundHandlerAdapter 類 ;

public B handler(ChannelHandler handler)

4 . 連接服務(wù)器 : 連接 String inetHost 地址的 int inetPort 端口 , 建立連接用于讀寫(xiě)數(shù)據(jù) ;

public ChannelFuture connect(String inetHost, int inetPort)

5 . 客戶端 Bootstrap 代碼示例 :

// 客戶端只需要一個(gè) 時(shí)間循環(huán)組 , 即 NioEventLoopGroup 線程池 EventLoopGroup eventLoopGroup = new NioEventLoopGroup(); // 客戶端啟動(dòng)對(duì)象 Bootstrap bootstrap = new Bootstrap(); // 設(shè)置相關(guān)參數(shù) bootstrap.group(eventLoopGroup) // 設(shè)置客戶端的線程池.channel(NioSocketChannel.class) // 設(shè)置客戶端網(wǎng)絡(luò)套接字通道類型.handler( // 設(shè)置客戶端的線程池對(duì)應(yīng)的 NioEventLoop 設(shè)置對(duì)應(yīng)的事件處理器 Handlernew ChannelInitializer<SocketChannel>() {@Overrideprotected void initChannel(SocketChannel ch) throws Exception {ch.pipeline().addLast(new ClientHandler());}}); try {// 開(kāi)始連接服務(wù)器, 并進(jìn)行同步操作// ChannelFuture 類分析 , Netty 異步模型// sync 作用是該方法不會(huì)再次阻塞ChannelFuture channelFuture = bootstrap.connect("127.0.0.1", 8888).sync();System.out.println("客戶端連接服務(wù)器成功 ...");// 關(guān)閉通道, 開(kāi)始監(jiān)聽(tīng)channelFuture.channel().closeFuture().sync(); } catch (InterruptedException e) {e.printStackTrace(); }finally {// 優(yōu)雅的關(guān)閉eventLoopGroup.shutdownGracefully(); }

總結(jié)

以上是生活随笔為你收集整理的【Netty】Netty 核心组件 ( ServerBootstrap | Bootstrap )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品国产三级国产aⅴ下载 | 成人激情文学 | 国产99久久久国产精品成人免费 | 爽爽窝窝午夜精品一区二区 | 秋霞成人午夜鲁丝一区二区三区 | 新亚洲天堂| 天天干,天天操,天天射 | av中文在线 | 国产手机视频在线 | 起碰在线 | 婷婷色综合网 | 精品欧美一区二区久久久 | 99久久久无码国产精品性波多 | 日韩三级视频在线观看 | 91桃色网站 | 免费成人黄色网址 | 日韩欧美高清一区 | 久久精品丝袜 | 欧美性猛交xxxx黑人猛交 | xxxxav| 妺妺窝人体色www聚色窝仙踪 | 高清av不卡 | 久久看片| 亚洲永久精品在线观看 | 中文字幕在线视频免费 | 97色婷婷| 理论av| 中国毛片网站 | 日韩av手机在线 | 女生扒开尿口让男生桶 | 色婷婷伊人 | 日本特黄特黄刺激大片 | 亚欧精品视频一区二区三区 | 操极品女神 | 人人妻人人澡人人爽 | 国产一区二区激情视频 | 日韩av大片 | 四虎精品在永久在线观看 | 欧美在线播放一区二区 | 影音先锋久久久 | 51热门大瓜今日大瓜 | 91精品国产乱码久久久久久久久 | 成人国产av一区二区三区 | 久久久久久欧美 | 国产精品一区二区入口九绯色 | 台湾佬成人中文网222vvv | 欧美亚洲视频 | 高跟鞋调教—视频|vk | 国产精品女主播 | 久久免费久久 | 免费美女毛片 | 欧美日韩激情视频 | 国产成人精品一区二三区 | 天堂久久久久 | 国产一级二级三级视频 | 91影院在线观看 | 久操视频免费 | 中文字幕日韩经典 | 免费看a级片 | 粉嫩aⅴ一区二区三区 | jizz成人 | 自拍偷拍校园春色 | 伊人久久免费视频 | 国产九九精品视频 | 美女打屁股网站 | 欧美色图一区 | 中文字幕亚洲不卡 | 国产亚洲制服欧洲高清一区 | 久久婷婷六月 | 中文字幕av片 | 午夜av不卡| 天天插天天搞 | 精品动漫av| 欧美在线播放视频 | 亚洲经典自拍 | 国产精品久久久久高潮 | 奇米婷婷| 一节黄色片 | 蜜臀久久99精品久久久久久宅男 | 加勒比波多野结衣 | 白俄罗斯毛片 | 日本中出视频 | 欧美一级二级在线观看 | 日本精品免费在线观看 | 国语对白真实视频播放 | 俄罗斯一级片 | 天天操天天操天天操天天操 | 日韩在线视频一区 | 天堂av中文字幕 | 少妇偷人精品无码人妻 | 国产少妇在线 | 国产做爰视频免费播放 | 国产丝袜视频在线观看 | 少妇又色又紧又大爽又刺激 | 一区精品在线观看 | 成人传媒 | 俺啪也| 欧美精品久久久久久久自慰 | 国产日韩欧美综合在线 |