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();