美文网首页
LengthFieldPrepender 的取值范围

LengthFieldPrepender 的取值范围

作者: 程序男保姆 | 来源:发表于2020-05-13 19:56 被阅读0次
  • ######## class LengthFieldPrepender extends MessageToMessageEncoder<ByteBuf>

 /**根据lengthFieldLength字段 与 传入数据的byte.length 判断是否合适*/
 switch (lengthFieldLength) {
        case 1:
            if (length >= 256) {
                // 如果长度为1 并且传输的字符长度大于byte的最大容量256时,则报错
                throw new IllegalArgumentException(
                        "length does not fit into a byte: " + length);
            }
            out.add(ctx.alloc().buffer(1).order(byteOrder).writeByte((byte) length));
            break;
        case 2:
            if (length >= 65536) {
                // 如果长度为2 并且传输的字符长度大于short的最大容量65536时,则报错
                throw new IllegalArgumentException(
                        "length does not fit into a short integer: " + length);
            }
            out.add(ctx.alloc().buffer(2).order(byteOrder).writeShort((short) length));
            break;
        case 3:
            if (length >= 16777216) {
                // 如果长度为3 并且传输的字符长度大于16777216时,则报错
                throw new IllegalArgumentException(
                        "length does not fit into a medium integer: " + length);
            }
            out.add(ctx.alloc().buffer(3).order(byteOrder).writeMedium(length));
            break;
        case 4:
            out.add(ctx.alloc().buffer(4).order(byteOrder).writeInt(length));
            break;
        case 8:
            out.add(ctx.alloc().buffer(8).order(byteOrder).writeLong(length));
            break;

相关文章

  • LengthFieldPrepender 的取值范围

    ######## class LengthFieldPrepender extends MessageToMess...

  • 在CMD中取随机数

    基本命令:%random% 取值范围:[0~65535] 自定义取值范围: 取值范围:[4,12] 取值范围:[4,5]

  • 取值范围

    有符号整形byte:sizeof(Byte) = 1 bytes;也就是8个二进制位;取值范围:-2^7 ~ 2^...

  • 数据类型的取值范围和溢出

    不知何为原码反码补码的童鞋请猛戳这里,这篇文章要说的是,数据类型的取值范围和溢出 取值范围 数据类型的取值范围有一...

  • Java字节码与Python字节码互转

    Java 字节(Byte) 取值范围 [-128,127]Python3 字节(bytes) 取值范围: [0,2...

  • 归一化处理

    将不同维度的特征值都转换到同一个取值范围比如,0到1之间。比如A维度取值范围是1000到2000,而B维度取值范围...

  • 正则表达式

    [] 中括号代表取值范围{} 取值长度,也叫取值位数取值范围在0-9,四位的表达方式{2,4}两位,四位{2,...

  • mysql数据类型

    1、整型 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~25...

  • kata-rectangle-sprint3 & refacto

    sprint3: (1)宽的取值范围为(0,100],高的取值范围为(0,75)。当值不在这个范围内,则认为矩形非...

  • 求x取值范围

    讲解对象:求x取值范围作者:融水公子 rsgz

网友评论

      本文标题:LengthFieldPrepender 的取值范围

      本文链接:https://www.haomeiwen.com/subject/wshonhtx.html