From 4a03bac06b2868640770a84572ef0e06cc082765 Mon Sep 17 00:00:00 2001 From: zhugongping Date: Fri, 16 Jan 2026 15:15:25 +0800 Subject: [PATCH] =?UTF-8?q?20260116:=E7=BB=9F=E4=B8=80netty=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B8=8E=E4=BD=BF=E7=94=A87e=E5=81=9A=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=86=E9=9A=94=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fastbee/bootstrap/tcp/TCPBootStrap.java | 7 +++---- fastbee-server/pom.xml | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/fastbee-server/boot-strap/src/main/java/com/fastbee/bootstrap/tcp/TCPBootStrap.java b/fastbee-server/boot-strap/src/main/java/com/fastbee/bootstrap/tcp/TCPBootStrap.java index 3c255b7a..e528557e 100644 --- a/fastbee-server/boot-strap/src/main/java/com/fastbee/bootstrap/tcp/TCPBootStrap.java +++ b/fastbee-server/boot-strap/src/main/java/com/fastbee/bootstrap/tcp/TCPBootStrap.java @@ -49,10 +49,9 @@ public class TCPBootStrap { .setIdleStateTime(keepAlive, 0, 0) .setPort(port) //设置报文最大长度 modbus-rtu - .setMaxFrameLength(2048) - // 注意:0x7E 是注册/心跳帧(7E...7E)的帧头/帧尾,不能作为“分隔符”strip 掉,否则会导致吞掉帧头形成 0x80...7E 的残帧。 - // 分隔符仅作为兜底(当既不是7E帧也不是Modbus RTU帧时),这里使用 '\n' 方便切分设备可能上报的ASCII日志行。 - .setDelimiters(new Delimiter(new byte[]{0x0A}, true)) + .setMaxFrameLength(1024) + // 此处就是ASCII和注册包粘包了,无需strip掉 “分隔符” 即可 + .setDelimiters(new Delimiter(new byte[]{0x7e}, false)) .setDecoder(messageAdapter) .setEncoder(messageAdapter) .setHandlerMapping(handlerMapping) diff --git a/fastbee-server/pom.xml b/fastbee-server/pom.xml index b0a0faf3..bbd96efd 100644 --- a/fastbee-server/pom.xml +++ b/fastbee-server/pom.xml @@ -32,7 +32,7 @@ io.netty netty-all - 4.1.56.Final + compile