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