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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

netty 之 telnet HelloWorld 详解

發布時間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 netty 之 telnet HelloWorld 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

依賴工具

  • Maven

  • Git

  • JDK

  • IntelliJ IDEA

源碼拉取

從官方倉庫?https://github.com/netty/netty?Fork?出屬于自己的倉庫。為什么要?Fork??既然開始閱讀、調試源碼,我們可能會寫一些注釋,有了自己的倉庫,可以進行自由的提交。:smiling_imp:

使用?IntelliJ IDEA?從?Fork?出來的倉庫拉取代碼。

本文使用的 Netty 版本為?4.1.26.Final-SNAPSHOT?

Maven Profile

打開 IDEA 的?Maven Projects?,選擇對應的 Profiles 。如下圖所示:

  • jdk8?:筆者使用的 JDK 版本是 8 ,所以勾選了?jdk8?。如果錯誤的選擇,可能會報如下錯誤:

    java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer
  • linux?: 選擇對應的系統版本。:smiling_imp: 筆者手頭沒有 windows 的電腦,所以不知道該怎么選。

修改完成后,點擊左上角的【刷新】按鈕,進行依賴下載,耐心等待...

解決依賴報錯

在?codec-redis?模塊中,類 FixedRedisMessagePool 會報如下類不存在的問題:

import io.netty.util.collection.LongObjectHashMap; import io.netty.util.collection.LongObjectMap;
  • 具體如下圖所示:

解決方式如下:

cd common; mvn clean compile;
  • 跳轉到?common?模塊中,編譯生成對應的類。為什么可以通過編譯生成對應的類呢,原因參見?common?模塊的?src/java/templates/io/netty/util/collection?目錄下的?.template?文件。

在 Github 上,也有多個針對這個情況討論的 issue :

  • 《Can not find class io.netty.util.collection.LongObjectHashMap in 4.1.8.final》

  • 《io.netty.util.collection.LongObjectHashMap not found at branch 4.1》

example 模塊

在?example?模塊里,官網提供了多個 Netty 的使用示例。?本文以?telnet?包下來作為示例。哈哈哈,因為最簡單且完整。

netty-helloworld

使用說明

軟件架構說明

  • 使用netty實現客戶端<-->服務器通信

  • 項目結構

    netty-helloworld├── client├── Client.class -- 客戶端啟動類├── ClientHandler.class -- 客戶端邏輯處理類├── ClientHandler.class -- 客戶端初始化類├── server ├── Server.class -- 服務端啟動類├── ServerHandler -- 服務端邏輯處理類├── ServerInitializer -- 服務端初始化類

    使用telnet與服務端進行交互

    • 項目找到com.sanshengshui.netty.server.Server類,右鍵debug as啟動SocketServer

    • 打開telnet,和服務端進行交互操作

    客戶端與服務端交互

    • 項目找到com.sanshengshui.netty.server.Server類,右鍵debug as啟動Server

    • 項目找到com.sanshengshui.netty.client.Client類,右鍵debug as啟動Client

    演示如下:

    結果也如上述所說!

    其它

    關于netty 之 telnet HelloWorld 詳解到這里就結束了。

    歡迎工作一到五年的Java工程師朋友們加入Java架構開發:760940986
    群內提供免費的Java架構學習資料(里面有高可用、高并發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
    ?

    轉載于:https://my.oschina.net/u/3906190/blog/2221952

    總結

    以上是生活随笔為你收集整理的netty 之 telnet HelloWorld 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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