91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

东宁县| 白沙| 太仓市| 景泰县| 鄂托克旗| 林口县| 宁武县| 高碑店市| 汉阴县| 大石桥市| 昌宁县| 丰县| 江山市| 兴业县| 合作市| 体育| 泰宁县| 陇川县| 革吉县| 靖边县| 秦皇岛市| 南京市| 北安市| 岚皋县| 吴川市| 砀山县| 尚义县| 尖扎县| 大余县| 扎兰屯市| 龙陵县| 隆回县| 朝阳市| 墨竹工卡县| 灌阳县| 孙吴县| 青川县| 汤原县| 蒙山县| 合川市| 琼中|