From 9567c1defeb4bed1862d7ad72daf84314f30dd89 Mon Sep 17 00:00:00 2001 From: JianGuo Date: Fri, 14 Jun 2024 15:12:53 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xiaoliu/protocol/FilePacket.java | 12 ++++++++++++ .../com/xiaoliu/protocol/request/LoginPacket.java | 8 ++++++++ .../com/xiaoliu/handler/FilePacketServerHandler.java | 4 ++-- .../xiaoliu/handler/FileReceiveServerHandler.java | 7 ++++--- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/FileTransferCommon/src/main/java/com/xiaoliu/protocol/FilePacket.java b/FileTransferCommon/src/main/java/com/xiaoliu/protocol/FilePacket.java index 2af5968..cf78d9a 100644 --- a/FileTransferCommon/src/main/java/com/xiaoliu/protocol/FilePacket.java +++ b/FileTransferCommon/src/main/java/com/xiaoliu/protocol/FilePacket.java @@ -10,6 +10,8 @@ public class FilePacket extends Packet { File file; + long fileLength; + int ACK; @Override @@ -22,10 +24,12 @@ public class FilePacket extends Packet { public FilePacket(File file) { this.file = file; + this.fileLength = file.length(); } public FilePacket(File file, int ACK) { this.file = file; + this.fileLength = file.length(); this.ACK = ACK; } @@ -44,4 +48,12 @@ public class FilePacket extends Packet { public void setACK(int ACK) { this.ACK = ACK; } + + public long getFileLength() { + return fileLength; + } + + public void setFileLength(long fileLength) { + this.fileLength = fileLength; + } } diff --git a/FileTransferCommon/src/main/java/com/xiaoliu/protocol/request/LoginPacket.java b/FileTransferCommon/src/main/java/com/xiaoliu/protocol/request/LoginPacket.java index ec1d2e1..8183b91 100644 --- a/FileTransferCommon/src/main/java/com/xiaoliu/protocol/request/LoginPacket.java +++ b/FileTransferCommon/src/main/java/com/xiaoliu/protocol/request/LoginPacket.java @@ -27,6 +27,14 @@ public class LoginPacket extends Packet { boolean exec = false; + public void flush() { + this.exec = false; + this.fileName = null; + this.fileLength = 0; + this.readLength = 0; + this.fileOutputStream = null; + } + @Override public Byte getCommand() { return LOGIN_PACKET_REQUEST; diff --git a/FileTransferService/src/main/java/com/xiaoliu/handler/FilePacketServerHandler.java b/FileTransferService/src/main/java/com/xiaoliu/handler/FilePacketServerHandler.java index 85fdf7a..9b0a31a 100644 --- a/FileTransferService/src/main/java/com/xiaoliu/handler/FilePacketServerHandler.java +++ b/FileTransferService/src/main/java/com/xiaoliu/handler/FilePacketServerHandler.java @@ -25,8 +25,8 @@ public class FilePacketServerHandler extends SimpleChannelInboundHandler= loginPacket.getFileLength()) { log.info("文件接收完成..."); - loginPacket.setExec(false); - loginPacket.setReadLength(0); - loginPacket.getFileOutputStream().close(); + if(loginPacket.getFileOutputStream() != null){ + loginPacket.getFileOutputStream().close(); + } + loginPacket.flush(); } }