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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入浅出Netty之四 Client请求处理

發布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出Netty之四 Client请求处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前2篇分析了echo server端的運行機制,本篇同樣以echo client為例,分析netty的nio客戶端的運行機制。 總體來說client端和server端的處理是類似的,NioWorker是重用的,也就意味著client和server的讀寫機制是一樣的,都是通過worker線程來管理的。所不同的是Boss線程,server端的boss線程一個bind端口起一個,主要負責接收新請求,而client端的boss線程是一個可配置的數組,一個connect端口分配一個,主要負責connect過程,如果connect成功則將channle注冊到worker線程中處理。在Client同樣有PipelineSink,叫做NioClientSocketPipelineSink,也是負責底層IO和pipeline之間的交互。 EchoClient代碼: Java代碼
  • // 初始化Bootstrap和NioClientSocketChannelFactory,這一步將啟動nioWorker線程,并初始化NioClientSocketPipelineSink,并將Boss線程創建
  • ClientBootstrap bootstrap = new ClientBootstrap(
  • new NioClientSocketChannelFactory(
  • Executors.newCachedThreadPool(),
  • Executors.newCachedThreadPool()));
  • // 用戶自定義的pipeline工廠
  • bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
  • public ChannelPipeline getPipeline() throws Exception {
  • return Channels.pipeline(
  • new EchoClientHandler(firstMessageSize));
  • }
  • });
  • // 異步創建連接
  • ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
  • //等待連接關閉
  • future.getChannel().getCloseFuture().awaitUninterruptibly();
  • // 關閉資源,線程池等
  • bootstrap.releaseExternalResources();
  • // 初始化Bootstrap和NioClientSocketChannelFactory,這一步將啟動nioWorker線程,并初始化NioClientSocketPipelineSink,并將Boss線程創建ClientBootstrap bootstrap = new ClientBootstrap(new NioClientSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));// 用戶自定義的pipeline工廠bootstrap.setPipelineFactory(new ChannelPipelineFactory() {public ChannelPipeline getPipeline() throws Exception {return Channels.pipeline(new EchoClientHandler(firstMessageSize));}});// 異步創建連接ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));//等待連接關閉future.getChannel().getCloseFuture().awaitUninterruptibly();// 關閉資源,線程池等bootstrap.releaseExternalResources(); 具體connect過程: 一.創建client的channel Java代碼
  • public ChannelFuture connect(final SocketAddress remoteAddress, final SocketAddress localAddress) {
  • ......
  • //拿用戶自定義的pipeline
  • ChannelPipeline pipeline;
  • try {
  • pipeline = getPipelineFactory().getPipeline();
  • } catch (Exception e) {
  • throw new ChannelPipelineException("Failed to initialize a pipeline.", e);
  • }
  • // 從ChannelFactory中,創建Channel,對于client來說factory是NioClientSocketChannelFactory,Channel是NioClientSocketChannel
  • Channel ch = getFactory().newChannel(pipeline);
  • // 通過channel連接
  • return ch.connect(remoteAddress);
  • }
  • public ChannelFuture connect(final SocketAddress remoteAddress, final SocketAddress localAddress) {......//拿用戶自定義的pipelineChannelPipeline pipeline;try {pipeline = getPipelineFactory().getPipeline();} catch (Exception e) {throw new ChannelPipelineException("Failed to initialize a pipeline.", e);}// 從ChannelFactory中,創建Channel,對于client來說factory是NioClientSocketChannelFactory,Channel是NioClientSocketChannelChannel ch = getFactory().newChannel(pipeline);// 通過channel連接return ch.connect(remoteAddress);} 二.創建channel時,分配worker Java代碼
  • public SocketChannel newChannel(ChannelPipeline pipeline) {
  • return new NioClientSocketChannel(this, pipeline, sink, sink.nextWorker());
  • }
  • public SocketChannel newChannel(ChannelPipeline pipeline) {return new NioClientSocketChannel(this, pipeline, sink, sink.nextWorker());} 三.創建內部的SocketChannel,觸發ChannelOpen事件,不過echo client的handler沒有對channelOpen事件做處理

    轉載于:https://blog.51cto.com/daheyuan/1140093

    總結

    以上是生活随笔為你收集整理的深入浅出Netty之四 Client请求处理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 凹凸视频一区二区 | 欧美bdsm调教视频 | 婷婷午夜精品久久久久久性色av | 91性生活| 国产性生活| 激情在线网站 | 国产一二 | 青青草亚洲 | 黄色片免费观看视频 | 少妇呻吟视频 | 超碰在线图片 | www.超碰97.com | 亚洲视频在线观看免费视频 | 亚洲一区二区三区成人 | 日本狠狠干 | 51精品| 性生交生活片1 | 午夜天堂| 叶全真三级 | 扒开女人屁股进去 | 国产一区二区三区播放 | 综合亚洲视频 | 国产传媒第一页 | 精品少妇av| 成人动漫在线观看 | 伦理久久| 日本五十熟hd丰满 | 小蝌蚪视频色 | 成人香蕉视频在线观看 | 久久精品视频国产 | 中国女人黄色大片 | 国产精品hd | 亚洲天堂伊人网 | 中文字幕永久 | 爱情岛论坛av| 欧美色图亚洲视频 | 在线观看中文字幕亚洲 | 久久h视频| 制服下的诱惑暮生 | 男受被做哭激烈娇喘gv视频 | 91亚洲一区二区 | 色哟哟精品一区 | 午夜资源站 | av先锋资源网 | 韩国三级丰满少妇高潮 | 国产精品女教师 | 日韩精品成人在线 | 成人美女在线 | 特黄特色大片免费视频大全 | 久久久精| 免费成人美女女 | 综合网视频 | 人人看人人看 | 精品在线观看视频 | 久久久成人精品 | 亚洲精品视频国产 | 欧美黑人一区二区 | 四虎国产精品成人免费入口 | 国内自拍视频在线播放 | 国产成人av片 | 91丨九色丨蝌蚪丨老版 | 色峰视频 | 久久天| 婷婷丁香社区 | 亚洲视频二 | 欧美黑丝少妇 | 欧美黄色小说视频 | 波多野吉衣一区二区 | 对白刺激theporn | 欧美黄在线观看 | 国产51精品 | av中文天堂在线 | 亚洲综合在线网 | 美女草逼视频 | 成年人在线免费观看视频网站 | 国产精品一二三级 | 狠狠艹 | 欧美黑人疯狂性受xxxxx喷水 | 精品人妻少妇一区二区 | 免费在线看视频 | 少妇无套内谢免费视频 | 91国内在线| 亚洲永久免费观看 | 国产一区精品在线观看 | 欧美极品少妇xxxxⅹ免费视频 | 欧美在线观看不卡 | 丰满岳妇乱一区二区三区 | 亚洲素人 | 欧美一级在线免费观看 | 日韩乱淫| 亚洲私拍 | 日韩精品成人一区 | jizz中国少妇高潮出水 | 中文字幕在线二区 | 亚洲乱码少妇 | 在线不卡的av| 91久久中文字幕 | 91视频免费观看 | 人人爽人人插 |