From d8dff720357b6a46fef7dd443ab8228944d327a7 Mon Sep 17 00:00:00 2001 From: lijw Date: Fri, 14 Mar 2025 11:29:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E8=81=94=E8=B0=83=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java | 6 ++++-- src/main/java/com/inspect/tcpserver/tcp/NettyServer.java | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java b/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java index 5b90738..b6146cd 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java +++ b/src/main/java/com/inspect/tcpserver/tcp/MyDecoder.java @@ -58,7 +58,9 @@ public class MyDecoder extends ByteToMessageDecoder { } byte[] payload = new byte[xmlLength]; in.readBytes(payload); - in.readShortLE(); + if(in.readableBytes() > 0) { + in.readShortLE(); + } BinaryModel binaryModel = new BinaryModel(); binaryModel.receiveIndex = receiveIndex; binaryModel.sendIndex = sendIndex; @@ -68,7 +70,7 @@ public class MyDecoder extends ByteToMessageDecoder { binaryModel.uuid = uuid; out.add(binaryModel); } catch (Exception e) { - e.printStackTrace(); + log.error("error" , e); } } } diff --git a/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java b/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java index f6910fd..80e588d 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java +++ b/src/main/java/com/inspect/tcpserver/tcp/NettyServer.java @@ -141,6 +141,9 @@ public class NettyServer { //发送消息 public void flushMsgToDevice(String uuid, String clientKey, boolean request, String xml) { + logger.info("clientKey: " + clientKey + ", xml: " + xml); + logger.info("tcpClientMap.size(): " + tcpClientMap.size() + ", tcpClientMap: " + tcpClientMap); + if (tcpClientMap.containsKey(clientKey) && !StringUtil.isNullOrEmpty(xml)) { ByteBuf byteBuf = Unpooled.copiedBuffer(xml, CharsetUtil.UTF_8); int length = byteBuf.readableBytes();