From 1fd64b07ddb99c2d9cc8a358b71aceb6a2c81492 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 05 七月 2023 15:58:31 +0800
Subject: [PATCH] 修改nettyTCP客户端断开重连 增加数据库连接池 修改日志打印
---
src/main/java/com/ard/utils/tcp/MessageParsing.java | 38 ++++++++++++++++++++++++++++++++++++--
1 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ard/utils/tcp/MessageParsing.java b/src/main/java/com/ard/utils/tcp/MessageParsing.java
index 14aa3c5..e468e9d 100644
--- a/src/main/java/com/ard/utils/tcp/MessageParsing.java
+++ b/src/main/java/com/ard/utils/tcp/MessageParsing.java
@@ -1,5 +1,7 @@
package com.ard.utils.tcp;
+import com.ard.utils.ByteUtils;
+
import javax.xml.bind.DatatypeConverter;
import java.util.ArrayList;
import java.util.Arrays;
@@ -44,6 +46,36 @@
}
/**
+ * crc32鏍¢獙妫�鏌�
+ * 鍒樿嫃涔�
+ * 2023/7/4 11:24
+ */
+ public static Boolean CRC32Check(byte[] packet) {
+ //System.out.println(DatatypeConverter.printHexBinary(packet));
+ int headerLength = 3;//鍖呭ご3涓瓧鑺�
+ int footerLength = 3;//鍖呭熬3涓瓧鑺�
+ int crcLength = 4;//crc鏍¢獙4涓瓧鑺�
+ //鍘绘帀鍖呭ご鍖呭熬
+ byte[] payloadCrc32 = ByteUtils.removeHeaderAndFooter(packet, headerLength, footerLength);
+ //System.out.println(DatatypeConverter.printHexBinary(payloadCrc32));
+ //鑾峰彇鍒版暟鎹惡甯︾殑crc32鍊�
+ byte[] oldCrc32 = ByteUtils.getLastBytes(payloadCrc32, crcLength);
+ //鍘绘帀鍖呭ご鍖呭熬crc32瀛楄妭锛屼粎淇濈暀璐熻浇
+ byte[] payload = ByteUtils.removeHeaderFooterAndCRC(packet, headerLength, footerLength, crcLength);
+ // System.out.println(DatatypeConverter.printHexBinary(payload));
+ //璁$畻璐熻浇鐨刢rc32鍊�
+ byte[] NewCrc32 = ByteUtils.parseCrc32(payload);
+ System.out.println("old:"+DatatypeConverter.printHexBinary(oldCrc32));
+ System.out.println("new:"+DatatypeConverter.printHexBinary(NewCrc32));
+ //鍒ゆ柇鏁版嵁鐨刢rc32鏍¢獙鍊煎拰璁$畻鍊兼槸鍚︾浉鍚�
+ if (Arrays.equals(oldCrc32, NewCrc32)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
* 鑾峰彇鍖呯粨鏉熺储寮�
*/
public static int findPacketEndIndex(List<Byte> buffer, byte[] packetEnd) {
@@ -78,8 +110,10 @@
* 鍘绘帀鍖呭ご鍜屽寘灏炬牎楠屽強杞箟
*/
public static byte[] transferData(byte[] data) {
- data = Arrays.copyOfRange(data, 3, data.length);
- data = Arrays.copyOfRange(data, 0, data.length - 7);
+ int headerLength = 3;//鍖呭ご3涓瓧鑺�
+ int footerLength = 3;//鍖呭熬3涓瓧鑺�
+ int crcLength = 4;//crc鏍¢獙4涓瓧鑺�
+ data= ByteUtils.removeHeaderFooterAndCRC(data,headerLength,footerLength,crcLength);
String dataStr = DatatypeConverter.printHexBinary(data);
if (dataStr.contains("01020201")) {//杞箟01020201
dataStr = dataStr.replaceAll("01020201", "010201");
--
Gitblit v1.9.3