亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Netty粘包問題的解決方法

發布時間:2021-08-07 16:05:29 來源:億速云 閱讀:106 作者:chen 欄目:云計算

本篇內容主要講解“Netty粘包問題的解決方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Netty粘包問題的解決方法”吧!

我們知道,netty當中有boss線程和worker線程,通常是1對多的關系,可以理解為boss接到客戶的請求之后,分配給其中一個worker去處理,如果客戶過多,可能會出現一個worker服務多個客戶的情況。這是背景。

按照我的理解,粘包問題解決的關鍵在于2點,1、接收到數據在無法得到及時解析的情況下,得有地方給它存下來;2、緩沖區指針的任意移動;恰好,這兩點netty都能夠很輕易的。下面是代碼,因為公司的保密需求,將會隱去具體業務部分。

public class ProtocolAnaDecoder extends ByteToMessageDecoder {

    @Override

    protected void decode(ChannelHandlerContext ctx, ByteBuf in, Listout) throws Exception {         Object decoded = null;

        while(true){

            decoded = decode(ctx, in);

             if (decoded != null) {

                out.add(decoded);

            } else{

                return;

            }

        }

    }

    private Object decode(ChannelHandlerContext ctx, ByteBuf in) {

        //標記當前讀指針位置

        in.markReaderIndex();

        while(in.isReadable()){

            byte b = in.readByte();

            //業務處理部分,如果獲得一個正確的消息對象,直接返回

        }

        //如果沒有得到任何消息對象,重置讀指針位置(之前mark的位置)。         in.resetReaderIndex();

        return null;

    }

}

到此,相信大家對“Netty粘包問題的解決方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐城市| 西林县| 资中县| 永春县| 宣威市| 昭通市| 寿宁县| 容城县| 庆元县| 尼木县| 高密市| 南汇区| 高雄县| 辰溪县| 灵武市| 喀喇沁旗| 凤阳县| 河池市| 马关县| 文山县| 额敏县| 屯留县| 平谷区| 珲春市| 舞阳县| 新泰市| 泗水县| 出国| 商南县| 卢氏县| 集安市| 泾源县| 璧山县| 闵行区| 霍城县| 仪征市| 弥渡县| 昌乐县| 称多县| 瑞安市| 黄石市|