StringDecoder和LineBasedFrameDecoder的原理分析

LineBasedFrameDecoder的工作原理是它依次遍歷ByteBuf中的可讀字節,判斷看是否有“\n”或者“\r\n”,如果有就以此位置爲結束位置,從可讀索引到結束位置區間的字節就組成了一行。它是以換行符爲結束標誌的解碼器,支持攜帶結束符或者不攜帶結束符兩種解碼方式,同時支持配置單行的最大長度。如果連續讀取到最大長度後仍然沒有發現換行符,就會拋出異常,同時忽略掉之前讀取到的異常碼流。

StringDecoder就是將接收到的對象轉換成字符串,然後繼續調用後面的handler ,StringDecoder和LineBasedFrameDecoder的的組合就是按行切換的文本解碼器,他被設計用來支持TCP的粘包和拆包。

netty提供了多種支持TCP粘包和拆包的解碼器,用來滿足用戶不同的訴求。

 

 

TCP粘包和拆包的講解URL:

https://blog.csdn.net/wildwolf_001/article/details/81179512

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章