mirror of
https://github.com/binlaab/nanofiles.git
synced 2026-07-01 12:07:21 +02:00
práctica 3, falta la última parte
This commit is contained in:
60
es/um/redes/nanoFiles/application/NanoFiles.java
Normal file
60
es/um/redes/nanoFiles/application/NanoFiles.java
Normal file
@@ -0,0 +1,60 @@
|
||||
package es.um.redes.nanoFiles.application;
|
||||
|
||||
import es.um.redes.nanoFiles.logic.NFController;
|
||||
import es.um.redes.nanoFiles.util.FileDatabase;
|
||||
import es.um.redes.nanoFiles.util.NickGenerator;
|
||||
|
||||
public class NanoFiles {
|
||||
|
||||
public static final String DEFAULT_SHARED_DIRNAME = "nf-shared";
|
||||
/**
|
||||
* Identificador único para cada grupo de prácticas. TODO: Establecer a un valor
|
||||
* que combine los DNIs de ambos miembros del grupo de prácticas.
|
||||
*/
|
||||
public static final String PROTOCOL_ID = "123456789A";
|
||||
private static final String DEFAULT_DIRECTORY_HOSTNAME = "localhost";
|
||||
public static String sharedDirname = DEFAULT_SHARED_DIRNAME;
|
||||
public static FileDatabase db;
|
||||
/**
|
||||
* Flag para pruebas iniciales con UDP, desactivado una vez que la comunicación
|
||||
* cliente-directorio está implementada y probada.
|
||||
*/
|
||||
public static boolean testModeUDP = false;
|
||||
/**
|
||||
* Flag para pruebas iniciales con TCP, desactivado una vez que la comunicación
|
||||
* cliente-servidor de ficheros está implementada y probada.
|
||||
*/
|
||||
public static boolean testModeTCP = true;
|
||||
public static String peerNickname;
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Comprobamos los argumentos
|
||||
if (args.length > 1) {
|
||||
System.out.println("Usage: java -jar NanoFiles.jar [<local_shared_directory>]");
|
||||
return;
|
||||
} else if (args.length == 1) {
|
||||
// Establecemos el directorio compartido especificado
|
||||
sharedDirname = args[0];
|
||||
}
|
||||
|
||||
db = new FileDatabase(sharedDirname);
|
||||
peerNickname = NickGenerator.randomNickname();
|
||||
System.out.println("* Peer nickname: " + peerNickname);
|
||||
|
||||
// Creamos el controlador que aceptará y procesará los comandos
|
||||
NFController controller = new NFController(DEFAULT_DIRECTORY_HOSTNAME);
|
||||
|
||||
if (testModeUDP) {
|
||||
controller.testCommunication();
|
||||
} else {
|
||||
// Entramos en el bucle para pedirle al controlador que procese comandos del
|
||||
// shell hasta que el usuario quiera salir de la aplicación.
|
||||
do {
|
||||
controller.readGeneralCommandFromShell();
|
||||
controller.processCommand();
|
||||
} while (controller.shouldQuit() == false);
|
||||
System.out.println("Bye.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user