quemen redes

This commit is contained in:
binlaab
2026-04-20 22:38:38 +02:00
parent aa8b7b30fb
commit 25bf19ee9c
15 changed files with 414 additions and 42 deletions

View File

@@ -12,8 +12,15 @@ public class NFController {
* Diferentes estados del cliente de acuerdo con el autómata
*/
private static final byte OFFLINE = 0;
private static final byte WAIT_ACK_PING = 1;
private static final byte ONLINE = 2;
private static final byte RETRY_PING = 3;
private static final byte END = 4;
private static final byte WAIT_ACK_REQUESTDIRFILES = 5;
private static final byte RETRY_REQUESTDIRFILES = 6;
/*
* TODO: (Boletín Autómatas) Añadir más constantes que representen los estados
* DONE: (Boletín Autómatas) Añadir más constantes que representen los estados
* del autómata del cliente de directorio.
*/
@@ -138,8 +145,12 @@ public class NFController {
commandSucceeded = controllerPeer.listPeerFiles(peerAddr);
break;
case NFCommands.COM_DOWNLOAD_PEER:
commandSucceeded = controllerPeer.downloadFromPeers(controllerDir, targetPeerNickname,
if (NanoFiles.testModeTCP) {
controllerPeer.testTCPClient();
} else {
commandSucceeded = controllerPeer.downloadFromPeers(controllerDir, targetPeerNickname,
targetHashSubstring);
}
break;
case NFCommands.COM_SERVE:
/*
@@ -217,6 +228,12 @@ public class NFController {
commandAllowed = true;
break;
}
case NFCommands.COM_PING: {
// ?????
}
default:
// System.err.println("ERROR: undefined behaviour for " + currentCommand + "
// command!");

View File

@@ -1,6 +1,7 @@
package es.um.redes.nanoFiles.logic;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.io.IOException;
import es.um.redes.nanoFiles.tcp.client.NFConnector;
import es.um.redes.nanoFiles.application.NanoFiles;
@@ -46,7 +47,21 @@ public class NFControllerLogicP2P {
*
*/
try {
fileServer = new NFServer();
ServerSocket serverSocket = fileServer.getServerSocket();
if (serverSocket.isBound()) {
System.out.println("Server socket listening on port " + serverSocket.getLocalPort());
serverRunning = true;
}
Thread mainServerThread = new Thread(fileServer);
mainServerThread.start();
} catch (IOException e) {
e.printStackTrace();
System.err.println("Cannot start the file server");
fileServer = null;
}
}
@@ -86,7 +101,7 @@ public class NFControllerLogicP2P {
assert (NanoFiles.testModeTCP);
/*
* (Boletín SocketsTCP) Inicialmente, se creará un NFConnector (cliente TCP)
* para conectarse a un servidor que esté escuchando en la misma máquina y un
* para conectarse a un servidor que esté escuchando en la m isma máquina y un
* puerto fijo. Después, se ejecutará el método "test" para comprobar la
* comunicación mediante el socket TCP. Posteriormente, se desactivará
* "testModeTCP" para implementar la descarga de un fichero desde múltiples
@@ -95,6 +110,7 @@ public class NFControllerLogicP2P {
try {
NFConnector nfConnector = new NFConnector(new InetSocketAddress(NFServer.PORT));
// meter la ip como primer argumento a InetSocketAddress()
nfConnector.test();
} catch (IOException e) {
// TODO Auto-generated catch block