This commit is contained in:
2026-04-25 14:26:35 +02:00
parent c0fb933fce
commit 0cf758943b
10 changed files with 216 additions and 88 deletions

View File

@@ -9,6 +9,7 @@ import java.net.Socket;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import es.um.redes.nanoFiles.tcp.message.PeerMessage;
import es.um.redes.nanoFiles.tcp.message.PeerMessageOps;
@@ -35,8 +36,10 @@ public class NFConnector {
* partir de los streams de entrada/salida del socket creado. Se usarán para
* enviar (dos) y recibir (dis) datos del servidor.
*/
try {
socket = new Socket(serverAddr.getAddress(), serverAddr.getPort());
socket = new Socket(fserverAddr.getAddress(), fserverAddr.getPort());
} catch (Exception e) { e.printStackTrace(); }
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
@@ -57,11 +60,11 @@ public class NFConnector {
System.out.println("received " + intNumber);
*/
try {
PeerMessage msgOut = new PeerMessage(PeerMessageOps.OPCODE_REQUEST_PEER_FILES);
PeerMessage msgOut = new PeerMessage((byte) 1);
msgOut.writeMessageToOutputStream(dos);
System.out.println("sent " + PeerMessageOps.opcodeToOperation(msgOut.getOpcode()));
PeerMessage msgIn = PeerMessage.readMessageFromInputStream(dis);
System.out.println("received " + PeerMessageOps.opcodeToOperation(msgIn.getOpcode()));
System.out.println("received " + msgIn.getOpcode() + " " + PeerMessageOps.opcodeToOperation(msgIn.getOpcode()));
System.out.println("(" + new SimpleDateFormat("HH:mm:ss:SS").format(new Date()));
if (msgIn.getOpcode() == PeerMessageOps.OPCODE_PEER_FILE) {
System.out.println("file content: ");
@@ -76,7 +79,29 @@ public class NFConnector {
}
public FileInfo[] getFileList() {
try {
LinkedList<FileInfo> filelist = new LinkedList<>();
PeerMessage msgOut = new PeerMessage(PeerMessageOps.OPCODE_REQUEST_PEER_FILES);
msgOut.writeMessageToOutputStream(dos);
PeerMessage msgIn = PeerMessage.readMessageFromInputStream(dis);
if (msgIn.getOpcode() == PeerMessageOps.OPCODE_PEER_FILE) {
boolean last = false;
while (!last) {
long size = msgIn.getFileSize();
String hash = msgIn.getFileHash();
String name = msgIn.getFilenameVal();
FileInfo file = new FileInfo(hash, name, size, null);
filelist.add(file);
last = msgIn.getLast();
if (!last) msgIn = PeerMessage.readMessageFromInputStream(dis); // tengo que ver si puedo hacerlo diferente
}
} else { return null; }
return filelist.toArray(new FileInfo[0]);
} catch (IOException e) { e.printStackTrace(); return null; }
}
public InetSocketAddress getServerAddr() {