1.修改bug

This commit is contained in:
JianGuo 2024-06-14 15:12:53 +08:00
parent 34699ff89d
commit 9567c1defe
4 changed files with 26 additions and 5 deletions

View File

@ -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;
}
}

View File

@ -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;

View File

@ -25,8 +25,8 @@ public class FilePacketServerHandler extends SimpleChannelInboundHandler<FilePac
}
loginPacket.setExec(true);
loginPacket.setFileName(file.getName());
loginPacket.setFileLength(file.length());
loginPacket.setFileOutputStream(new FileOutputStream(new File("./server-receive-" + file.getName())));
loginPacket.setFileLength(packet.getFileLength());
loginPacket.setFileOutputStream(new FileOutputStream(new File("c:/temp/server-receive-" + file.getName())));
// FileReceiveServerHandler.fileLength = file.length();
// FileReceiveServerHandler.outputStream = new FileOutputStream(
// new File("./server-receive-" + file.getName())

View File

@ -53,10 +53,11 @@ public class FileReceiveServerHandler extends ChannelInboundHandlerAdapter {
private void sendComplete(LoginPacket loginPacket) throws IOException {
if (loginPacket.getReadLength() >= loginPacket.getFileLength()) {
log.info("文件接收完成...");
loginPacket.setExec(false);
loginPacket.setReadLength(0);
if(loginPacket.getFileOutputStream() != null){
loginPacket.getFileOutputStream().close();
}
loginPacket.flush();
}
}
}