Empezar boletín 5, el 4 está acabado

This commit is contained in:
binlaab
2026-04-22 11:53:24 +02:00
parent 25bf19ee9c
commit c0fb933fce
6 changed files with 192 additions and 66 deletions

View File

@@ -189,7 +189,7 @@ public class NFDirectoryServer {
private void sendResponse(DatagramPacket pkt) throws IOException {
/*
* TODO: (Boletín MensajesASCII) Construir String partir de los datos recibidos
* TODO?: (Boletín MensajesASCII) Construir String partir de los datos recibidos
* en el datagrama pkt. A continuación, imprimir por pantalla dicha cadena a
* modo de depuración. Después, usar la cadena para construir un objeto
* DirMessage que contenga en sus atributos los valores del mensaje. A partir de
@@ -209,6 +209,7 @@ public class NFDirectoryServer {
if (receivedMsg != null) {
operation = receivedMsg.getOperation();
}
DirMessage msgToSend = new DirMessage(DirMessageOps.OPERATION_INVALID);
/*
* TODO: (Boletín MensajesASCII) Construir un objeto DirMessage (msgToSend) con
* la respuesta a enviar al cliente, en función del tipo de mensaje recibido,
@@ -218,12 +219,14 @@ public class NFDirectoryServer {
* enviar como respuesta (operation, etc.)
*/
switch (operation) {
// TODO: creo que hay getters y setters para esto?????
case DirMessageOps.OPERATION_PING: {
/*
* done: (Boletín MensajesASCII) Comprobamos si el protocolId del mensaje del
* cliente coincide con el nuestro.
*/
msgToSend = new DirMessage(operation);
String protocolId = receivedMsg.getProtocolId();
System.out.println(protocolId.equals(NanoFiles.PROTOCOL_ID));
if (protocolId.equals(NanoFiles.PROTOCOL_ID)) {
@@ -245,10 +248,26 @@ public class NFDirectoryServer {
}
case DirMessageOps.OPERATION_REQUEST_DIRFILES : {
FileInfo[] filelist = FileInfo.loadFilesFromFolder(Directory.DEFAULT_DIRECTORY_FILES_PATH);
operation = DirMessageOps.OPERATION_DIRFILES;
msgToSend = new DirMessage(DirMessageOps.OPERATION_DIRFILES, this.directoryFiles);
break;
}
case DirMessageOps.OPERATION_SERVE: {
if (registeredPeers.put(receivedMsg.getNick(), new InetSocketAddress(receivedMsg.getIP(), receivedMsg.getPort())) == null) {
System.out.println("NFDS - añadido peer");
msgToSend = new DirMessage(DirMessageOps.OPERATION_SERVE_OK);
} else {
msgToSend = new DirMessage(DirMessageOps.OPERATION_SERVE_ERROR);
}
break;
}
case DirMessageOps.OPERATION_REQUEST_SERVER_PEERS: {
msgToSend = new DirMessage(DirMessageOps.OPERATION_SERVER_PEERS);
msgToSend.setPeers(registeredPeers);
break;
}
default:
System.err.println("Unexpected message operation: \"" + operation + "\"");
@@ -260,7 +279,6 @@ public class NFDirectoryServer {
* (msgToSend) con el mensaje de respuesta a enviar, extraer los bytes en que se
* codifica el string y finalmente enviarlos en un datagrama
*/
DirMessage msgToSend = new DirMessage(operation);
String msgToSendStr = msgToSend.toString();
byte[] dataToSend = msgToSendStr.getBytes();
InetSocketAddress clientAddr = (InetSocketAddress) pkt.getSocketAddress();