‘liusuyi’
2024-03-26 b0926cd91651c158a3a1c070f9b6d2d8ce877cfe
src/main/java/com/ard/utils/netty/tcp/handler/MessageHandler.java
ÎļþÃû´Ó src/main/java/com/ard/utils/netty/tcp/MessageHandler.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.ard.utils.netty.tcp;
package com.ard.utils.netty.tcp.handler;
import com.ard.utils.util.ByteUtils;
@@ -57,15 +57,16 @@
        int crcLength = 4;//crc校验4个字节
        //去掉包头包尾
        byte[] payloadCrc32 = ByteUtils.removeHeaderAndFooter(packet, headerLength, footerLength);
        //System.out.println(DatatypeConverter.printHexBinary(payloadCrc32));
        System.out.println(DatatypeConverter.printHexBinary(payloadCrc32));
        //获取到数据携带的crc32值
        byte[] oldCrc32 = ByteUtils.getLastBytes(payloadCrc32, crcLength);
        System.out.println(DatatypeConverter.printHexBinary(oldCrc32));
        //去掉包头包尾crc32字节,仅保留负载
        byte[] payload = ByteUtils.removeHeaderFooterAndCRC(packet, headerLength, footerLength, crcLength);
       // System.out.println(DatatypeConverter.printHexBinary(payload));
        System.out.println(DatatypeConverter.printHexBinary(payload));
        //计算负载的crc32值
        byte[] NewCrc32 = ByteUtils.parseCrc32(payload);
        System.out.println(DatatypeConverter.printHexBinary(NewCrc32));
        //判断数据的crc32校验值和计算值是否相同
        if (Arrays.equals(oldCrc32, NewCrc32)) {
            return true;