中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

黄平县| 鄂托克前旗| 辽源市| 西城区| 武鸣县| 四川省| 新密市| 玉山县| 建阳市| 沧源| 日土县| 雷州市| 抚松县| 深水埗区| 响水县| 巴塘县| 南陵县| 武汉市| 邢台县| 长沙县| 尖扎县| 临猗县| 青河县| 寿宁县| 开化县| 阳西县| 保靖县| 普宁市| 余庆县| 沙雅县| 错那县| 宾川县| 恩平市| 依安县| 金塔县| 彭阳县| 周至县| 胶南市| 扎鲁特旗| 克拉玛依市| 平乐县|