精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

網絡 網絡管理
我們使用TCP協議在傳輸數據的時候,如果數據塊比較大,就會考慮將其切分。把一個大的數據包進行切割成一個個小的數據包發送。這時候就會遇到拆包和粘包的問題。

 [[311931]]

這篇文章會按照以下步驟進行講解,希望對你有所收獲:

1、什么是TCP粘包拆包2、Netty中粘包問題的問題重現3、Netty中粘包問題的解決方案

OK,在你心中有這么一個基本的脈絡之后就可以開始今天的文章了。本系列所有的文章都會給出完整的代碼,且在電腦上真實運行了一遍,確保無誤。

一、什么是TCP拆包和粘包

我們使用TCP協議在傳輸數據的時候,如果數據塊比較大,就會考慮將其切分。把一個大的數據包進行切割成一個個小的數據包發送。這時候就會遇到拆包和粘包的問題。

比如說在這里客戶端發送了兩個數據包D1和D2到服務端,在傳輸的時候就可能會遇到下列問題:

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

通過上面這張圖相信你基本上能夠理解了。不過我們在這里還是需要稍微解釋一下:

情況1:D1和D2正常發送,每次發送一個整包。

情況2:D1數據包比較大,D2比較小。第一次發送D1的一部分,第二次發送D1剩下的和D2整包。這叫拆包。

情況2:D1和D2數據包都比較小,一次發送兩個整包,這就叫做粘包。

情況4:D1數據包比較小,D2比較大。第一次發送D1整包和D2一部分,第二次發送D2剩下的。這叫拆包。

情況5:D1和D2數據包都比較大,這時候分開發。

為什么會出現這樣的問題呢?想要解釋清楚,就必須要考慮到計算機網絡的相關知識了,TCP在接受數據的時候,有一個滑動窗口來控制接受數據的大小,這個滑動窗口你就可以理解為一個緩沖區的大小。緩沖區滿了就會把數據發送。數據包的大小是不固定的,有時候比緩沖區大,有時候小。這時候就會出現上面的現象。

下面我們使用代碼來重現這個現象。

二、問題重現

1、前提準備

我們是基于Springboot開發的,因此還是和上一節一樣,首先創建一個Springboot的web工程,添加一下依賴:

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

如果你沒有使用maven,下載相關jar包,直接導入IDE中即可。

2、服務端代碼開發

步驟一:創建server類

這個server類,在上一篇文章中提到,是一個模板類,直接拿來用即可。

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

在上面的這個代碼中同樣我們最主要的是關注ServerUAVHandler的實現。

步驟二:Handler的實現

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

在這個類中,使用channelRead方法來讀取客戶端發送過來的信息。

(1)首先定義了一個counter,用于計算客戶端發送了多少條消息。

(2)在channelRead內部,首先將msg轉化為ByteBuf。

(3)將buf的數據轉化為字節byte

(4)將buf的字節數據轉化為String類型,然后輸出。

(5)使用ctx的writeAndFlush方法,每收到一個客戶端的數據,給對方回復一個A。別忘了還有一個換行符。

在上面的這個代碼中,最主要的就是服務端每收到一條客戶端的信息,就給其回復一條。也就是說客戶端和服務端的消息數量應該是一樣的。

3、客戶端代碼開發

步驟一:創建client類

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

同樣的代碼的邏輯在上一篇文章中已經說了,我們還是最關注的事件處理類Handler。

步驟二:Handler實現

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

這個客戶端的Handler看起來有點多,一共有兩個方法,channelActive和channelRead。

(1)channelActive里面使用for循環給服務器發送了100條,我愛你。每次發送還有在末尾添加一個換行符。

(2)channelRead里面接受服務器返回的消息。

按道理來講,客戶端給服務端發送了100條數據,那么服務端也會返回回來100條。我們來驗證一下。

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

這里輸出的是服務端的信息,從上面的輸出結果你就會發現,其實客戶端的“我愛你”都被黏在了一塊。本來100條但是現在卻只有17條了,這就是發生了粘包現象。

如何來解決呢?下面我們看看。

三、粘包問題解決

解決的思路很簡單,也就是每次發送一個數據包的時候,添加一個標識符,讀的時候一直讀到這個標識符才表示一個完整的數據包。在上面我們添加的是line.separator,也就是換行符“\n”。

1、服務端server類更改。

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

2、服務端Handler類更改

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

3、客戶端Client更改

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

4、客戶端Handler更改

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

客戶端和服務端改的地方都一樣,不過還是貼了出來,現在我們再運行一波。

 

使用Netty通信時,遇到TCP粘包拆包問題如何解決?答案如此簡單

 

看到沒是不是很神奇。我們來分析一下我們都修改了什么。

好像我們就只是在server和client類添加了兩個類,一個是LineBasedFrameDecoder,一個是StringDecoder,其他的都是直接刪除,這兩個類有什么作用呢?

(1)LineBasedFrameDecoder的作用是在讀取數據的時候,一直讀到是否含有換行符“\n”或者是“\r\n”。如果讀到了就表示該結束了。因此就拿到了這一行的數據包。

(2)StringDecoder用于對之前LineBasedFrameDecoder讀取的這一行數據包進行解碼。將對象轉換為字符串。

OK,好像他們倆搭配,干活真不累,現在我們終于可以解決粘包的問題了,但是同時也出現了一個新的問題,那就是如果我們的標識符不是換行符“\n”或者是“\r\n”又該怎么辦呢?幸好Netty同樣為我們提供了幾種其他的解碼器,叫做DelimiterBasedFrameDecoder和FixedLengthFrameDecoder,前面這個可以自動完成以分隔符做結束標志的消息,后面這個可以自動完成對定長消息的解碼。都可以解決粘包拆包問題。

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-07-15 10:35:16

NettyTCPJava

2020-12-23 07:53:01

TCP通信Netty

2024-08-16 21:47:18

2019-10-17 11:06:32

TCP粘包通信協議

2024-06-03 08:09:46

2024-12-19 11:00:00

TCP網絡通信粘包

2021-03-09 22:30:47

TCP拆包協議

2025-04-10 10:15:30

2022-04-28 08:38:09

TCP協議解碼器

2020-10-15 18:31:36

理解Netty編解碼

2019-08-15 07:43:38

TCP網絡協議丟包

2021-01-13 10:18:29

SocketNetty粘包

2020-03-10 08:27:24

TCP粘包網絡協議

2019-10-25 00:32:12

TCP粘包Netty

2019-10-24 07:35:13

TCP粘包Netty

2024-10-12 18:16:27

2025-11-05 03:00:00

Linux內核TCP粘包

2021-10-08 09:38:57

NettyChannelHand架構

2020-04-09 11:08:30

PyFlinkJAR依賴

2024-01-10 09:44:11

MySQL死鎖
點贊
收藏

51CTO技術棧公眾號

国产高清视频在线观看| 欧美第一淫aaasss性| 成人黄色免费片| 日本少妇xxxx| 波多野结衣视频免费观看| 成人免费91| 性色一区二区三区| 日韩欧美在线123| 亚洲三区在线观看| 中文字幕精品视频在线观看| 男人的天堂久久| 一区二区三区不卡视频| 国产精品亚洲片夜色在线| 一本色道综合久久欧美日韩精品| 任你弄在线视频免费观看| 精品在线播放午夜| 色小说视频一区| 奇米影视四色在线| 高清美女视频一区| 国产91在线观看丝袜| 久久在线免费视频| 在线观看免费不卡av| 在线视频二区| 免费人成精品欧美精品| 亚洲性猛交xxxxwww| 欧美视频免费播放| 亚洲欧美综合在线观看| 亚洲激情综合| 亚洲精品wwwww| 水蜜桃色314在线观看| 国产aⅴ爽av久久久久成人| 国产精品99久久久久久动医院| 欧美调教femdomvk| 五月天色一区| 国产一区二区三区成人| 99国产精品一区二区| 亚洲国产精品yw在线观看| 国产女大学生av| 国产福利电影在线| 99久久综合国产精品| 欧美最猛性xxxxx免费| caopeng视频| 日韩欧美激情| 亚洲国产视频在线| 92裸体在线视频网站| 深夜福利影院在线观看| 国产成人aa在线观看网站站| 欧美日韩国产一中文字不卡| 青青草成人激情在线| 中文在线观看av| 欧美激情视频一区二区三区在线播放| 91精品中文字幕一区二区三区| 激情五月六月婷婷| 青青久草在线| 男女性色大片免费观看一区二区| 日本亚洲精品在线观看| 中文字幕无码日韩专区免费| 高清一区二区三区| 欧美大片在线观看一区| 波多野结衣电影免费观看| 成人ssswww在线播放| 国产欧美一区二区三区在线看蜜臀 | 亚洲成人第一页| 欧美性潮喷xxxxx免费视频看| 色香蕉在线视频| 蓝色福利精品导航| 国内精品久久久久| 欧美激情久久久久久久| 亚洲**毛片| 在线精品视频免费观看| 中文字幕日韩精品无码内射| 97超碰资源站在线观看| 久久精品亚洲精品国产欧美| 亚洲综合自拍一区| 亚洲黄色小说网址| 日本vs亚洲vs韩国一区三区二区| 久久成人av网站| 九九九在线视频| 日本a口亚洲| 亚洲成成品网站| 91黄色免费视频| 日本免费成人| 日韩精品一区二区三区中文不卡| 粉嫩av懂色av蜜臀av分享| 美女毛片一区二区三区四区最新中文字幕亚洲 | 国产又粗又硬又长| 毛片网站在线| 99久久99久久免费精品蜜臀| 亚洲综合中文字幕在线观看| 韩国av免费在线观看| 久久99蜜桃精品| 成人av免费电影| 99久久亚洲精品日本无码| 媚黑女一区二区| 91国产精品91| 九九九国产视频| 牛牛国产精品| 欧美自拍视频在线| 一区二区 亚洲| 99国产精品国产精品久久| 日韩欧美三级电影| 日本中文字幕一区二区有码在线| 亚洲国产精品成人综合色在线婷婷| 久久99精品久久久久子伦| 亚洲精品国产手机| 久久精品在线免费观看| 大陆极品少妇内射aaaaaa| 亚洲欧洲日本韩国| 狠狠躁天天躁日日躁欧美| 波多野结衣xxxx| 国产成人一二片| 日韩在线中文字幕| 麻豆精品久久久久久久99蜜桃| 影音先锋中文字幕一区| 欧美国产中文字幕| 中文天堂在线资源| 91亚洲国产成人精品一区二区三 | 久久a爱视频| 精品卡一卡二卡三卡四在线| 韩国三级在线播放| 国产一区二区三区日韩精品| 亚洲人成五月天| 韩国女同性做爰三级| 久久97视频| 韩国19禁主播vip福利视频| 久草视频免费在线播放| 日本欧美一区二区在线观看| 国产一区二区黄色| 天天干视频在线| 亚洲免费伊人电影| 97免费视频观看| 国产视频一区二区在线播放| 在线精品国产成人综合| 日本美女黄色一级片| 亚洲一区欧美| 久久久久久国产精品| 欧美三级一区二区三区| 久久字幕精品一区| 91精品久久久久久久久久另类| 99国产精品一区二区三区| 久久精品男人天堂av| 一区二区三区四区欧美日韩| 天天综合网天天| 在线电影国产精品| 日本一本在线视频| 久久综合五月婷婷| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲手机在线| 日本电影亚洲天堂| 亚洲三区在线观看无套内射| 欧美日韩另类在线| 黄色录像a级片| 国产精品主播| 国产日韩在线视频| 亚洲成人影院麻豆| 性做久久久久久免费观看欧美| 国产一区视频免费观看| 精品麻豆剧传媒av国产九九九| 亚洲福利视频久久| 国产在线观看免费av| 丁香啪啪综合成人亚洲小说| 欧美一级片免费观看| av日韩亚洲| 日韩一区二区电影在线| 精品少妇一区二区三区免费观| 国产精品久久久久久久| 成人精品在线视频| 成人区精品一区二区不卡| 日韩欧美精品在线观看| 中文字幕在线观看视频www| 国产综合网站| 国产亚洲欧美另类一区二区三区 | 国产精品亚发布| 欧美成人hd| 天天综合网 天天综合色| 婷婷激情综合五月天| 国产日产一区| 国产男人精品视频| a级片国产精品自在拍在线播放| 欧美成人精品高清在线播放| 国产午夜性春猛交ⅹxxx| 国产拍欧美日韩视频二区| 久热精品在线观看视频| 午夜欧美视频| 欧美一区激情视频在线观看| 亚洲狼人综合| 一个人www欧美| 一级片aaaa| 亚洲成人av电影| 精品人妻一区二区三区蜜桃视频| 国产一区二区中文字幕| 亚洲 国产 欧美一区| 麻豆视频久久| 日韩女优在线播放| 在线看一级片| 亚洲午夜女主播在线直播| va婷婷在线免费观看| 欧美视频中文在线看| 久久99久久99精品免费看小说| 91亚洲精品一区二区乱码| 国产美女18xxxx免费视频| 一区二区三区四区五区精品视频 | 99久久久久成人国产免费| 黄色成人av在线| 国产老头老太做爰视频| 免费观看成人鲁鲁鲁鲁鲁视频| 国产性生活免费视频| 精品国产一区二区三区四区| 日本高清不卡在线| 宅男在线观看免费高清网站| 亚洲色图第三页| 好吊色一区二区| 在线观看91精品国产麻豆| 中文字幕亚洲精品一区| 一区二区三区.www| 精品手机在线视频| 日韩成人午夜电影| 日本一区不卡| 成人香蕉社区| 欧美有码在线观看| 色吊丝在线永久观看最新版本| 91麻豆精品国产91久久久更新时间| 免费黄色av片| 狠狠躁天天躁日日躁欧美| 国产精品日日夜夜| 亚洲猫色日本管| 91狠狠综合久久久| 日本一区二区成人| 一区二区三区久久久久| 99这里只有久久精品视频| 自拍视频第一页| 国产日韩欧美一区在线| 欧美日韩dvd| 国产精品久久久乱弄| 视频在线99re| 国产一区二区三区四区五区传媒| 久久综合久久综合这里只有精品| 欧美日韩尤物久久| 久久精品国产精品亚洲| 精品人妻久久久久一区二区三区| 亚洲国产婷婷综合在线精品| 91高清免费看| 亚洲精品国产成人久久av盗摄 | 伊人精品一区| 国产精品偷伦视频免费观看国产 | 亚洲人成久久| 精品视频免费在线播放| 亚洲国产一区二区三区a毛片| 国产精品一色哟哟| 伊人成综合网yiren22| 久久精品国产精品国产精品污| 日韩欧美美女在线观看| 国产精品亚洲一区二区三区| 成人在线高清| 久久久在线免费观看| bl视频在线免费观看| 一区二区欧美日韩视频| 九色网友自拍视频手机在线| 欧美一级夜夜爽| 91久久国产综合久久91| 色综合天天性综合| 欧美日韩在线视频免费播放| 一区二区理论电影在线观看| 日本五十路女优| 国产精品久久久久aaaa| 精品无码国产一区二区三区51安| www.亚洲免费av| 精品人妻一区二区三区视频| 国产午夜精品久久久久久免费视| 18啪啪污污免费网站| 亚洲精品va在线观看| 四虎永久在线精品| 色婷婷久久综合| 亚洲天堂国产精品| 高潮白浆女日韩av免费看| 亚洲影院在线播放| 欧美日韩精品一区二区三区蜜桃 | 日韩精品视频免费在线观看| 91福利免费视频| 日韩一区二区电影在线| 色视频在线观看| 俺也去精品视频在线观看| 蜜桃视频在线入口www| 日韩视频在线一区| missav|免费高清av在线看| 国产97免费视| 超碰国产精品一区二页| 国产一区二区久久久| 日韩欧美大片| 日韩久久不卡| 欧美激情第二页| 日韩精品无码一区二区三区免费| 国产一区二区三区在线观看精品| 国产精品久久久久久久无码| 国产精品无码永久免费888| 久草视频在线免费看| 色综合久久久久久久| 国产视频在线免费观看| 亚洲欧洲av一区二区| 在线观看男女av免费网址| 国产成人av网| 欧美性suv| 国产精品高潮呻吟久久av无限 | 亚洲91中文字幕无线码三区| 污视频在线免费观看一区二区三区| 1024精品久久久久久久久| 丰满爆乳一区二区三区| 亚洲大胆av| 手机av在线网| 久久久精品一品道一区| 久久久久久久国产视频| 亚洲午夜视频在线| 中文在线免费观看| 日韩av在线直播| 国产激情视频在线观看| 欧美亚洲国产日韩2020| 在线精品视频一区| 国产精品免费在线| 欧美大胆视频| 久久视频免费在线| 伊人成人网在线看| 五月天丁香花婷婷| 国产白丝精品91爽爽久久 | 亚洲 国产 欧美 日韩| 久久伊人91精品综合网站| 日本肉肉一区| 日本一区免费| 性一交一乱一区二区洋洋av| 国产在线不卡av| 91影院在线观看| 久久久精品国产sm调教网站| 7777精品伊人久久久大香线蕉完整版 | 国产另类xxxxhd高清| 黑人另类av| 国产欧美日韩视频在线| 中文字幕无码精品亚洲35| 波多野结衣中文一区| 性欧美一区二区| 亚洲视频一区二区在线| 国产精品不卡av| 欧美va亚洲va在线观看蝴蝶网| bt在线麻豆视频| 91久久精品国产| 久久久久久毛片免费看| 免费看欧美黑人毛片| 不卡一区中文字幕| 国产一级二级毛片| 精品人伦一区二区色婷婷| av中文字幕在线播放| 91九色露脸| 久操精品在线| 日本老熟妇毛茸茸| 国产白丝精品91爽爽久久| 久久久久久久中文字幕| 精品久久久久久久人人人人传媒| 丁香花视频在线观看| 国产精品一区二区久久精品| 久久中文字幕av| 国产三区在线视频| 国产三级欧美三级日产三级99| 波多野结衣小视频| 色777狠狠综合秋免鲁丝| 高清久久一区| 国产精品久久久久久久乖乖| 99精品久久免费看蜜臀剧情介绍| 在线能看的av| 日韩视频永久免费| 免费污视频在线| 久久爱av电影| 秋霞午夜av一区二区三区| 国产又色又爽又高潮免费| 欧美一区二区三区的| 国内高清免费在线视频| 欧美影视一区二区| 精一区二区三区| 国产精品theporn动漫| 亚洲欧美精品伊人久久| 精品日韩av| 蜜桃久久精品乱码一区二区| 免费成人美女在线观看.| 全网免费在线播放视频入口| 欧美日韩国产免费| bt在线麻豆视频| 欧美日韩国产不卡在线看| 好看不卡的中文字幕| 欧美亚一区二区三区| 欧美人xxxx| 国产美女情趣调教h一区二区| 欧美成ee人免费视频| 免费成人在线影院| 国产无码精品久久久| 色yeye香蕉凹凸一区二区av| 久久精品色综合| 久久婷婷中文字幕| 欧美午夜精品久久久久久久| 黄色网在线播放| 91精品久久久久久久久久久久久久| 亚洲无线视频| 乱老熟女一区二区三区| 国产视频精品自拍|