arreglado ping y empezado peerdl y dirdl

This commit is contained in:
binlaab
2026-04-26 18:18:50 +02:00
parent e0eabbd9a8
commit b179408874
9 changed files with 97 additions and 26 deletions

View File

@@ -99,10 +99,26 @@ public class NFConnector {
} else { return null; }
return filelist.toArray(new FileInfo[0]);
} catch (IOException e) { e.printStackTrace(); return null; }
}
public byte[] downloadChunk(String hash, int chunkNum) {
try {
PeerMessage msgOut = new PeerMessage(PeerMessageOps.OPCODE_REQUEST_PEER_DL);
msgOut.setFileHash(hash);
msgOut.setChunkNum(chunkNum);
msgOut.writeMessageToOutputStream(dos);
PeerMessage msgIn = PeerMessage.readMessageFromInputStream(dis);
if (msgIn.getOpcode() == PeerMessageOps.OPCODE_PEER_DL) {
return msgIn.getFileData();
}
} catch (IOException e) { e.printStackTrace(); }
return null;
}
public InetSocketAddress getServerAddr() {
return serverAddr;

View File

@@ -25,6 +25,7 @@ public class PeerMessage {
private String filenameVal;
private byte[] fileData;
private int chunkNum;
@@ -98,6 +99,14 @@ public class PeerMessage {
public void setFileData(byte[] fileData) {
this.fileData = fileData;
}
public int getChunkNum() {
return chunkNum;
}
public void setChunkNum(int chunkNum) {
this.chunkNum = chunkNum;
}
/**
* Método de clase para parsear los campos de un mensaje y construir el objeto
@@ -149,11 +158,14 @@ public class PeerMessage {
}
case PeerMessageOps.OPCODE_REQUEST_PEER_DL: {
int longitudSubHash = (int)dis.readByte();
// buscar archivo supongo
}
case PeerMessageOps.OPCODE_PEER_DL: {
int longitudSubHash = (int) dis.readByte();
byte[] subHash = new byte[longitudSubHash];
dis.readFully(subHash);
break;
// buscar archivo supongo
}

View File

@@ -219,7 +219,7 @@ public class NFServer implements Runnable {
msgOut.setFileHash(archivo.fileHash);
msgOut.setFileSize(archivo.fileSize);
msgOut.setFilenameVal(archivo.fileName);
msgOut.setFilenameVal(archivo.filePath + archivo.fileName);
msgOut.setFilenameLong((byte)archivo.fileName.length());
msgOut.setLast(false);
if (i == archivos.length - 1) msgOut.setLast(true);