diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..3f3893a --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..17086d9 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + nanofiles + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/es/um/redes/nanoFiles/application/Directory.class b/es/um/redes/nanoFiles/application/Directory.class new file mode 100644 index 0000000..dda6929 Binary files /dev/null and b/es/um/redes/nanoFiles/application/Directory.class differ diff --git a/es/um/redes/nanoFiles/application/NanoFiles.class b/es/um/redes/nanoFiles/application/NanoFiles.class new file mode 100644 index 0000000..06d51b7 Binary files /dev/null and b/es/um/redes/nanoFiles/application/NanoFiles.class differ diff --git a/es/um/redes/nanoFiles/logic/NFController.class b/es/um/redes/nanoFiles/logic/NFController.class new file mode 100644 index 0000000..3c43b0c Binary files /dev/null and b/es/um/redes/nanoFiles/logic/NFController.class differ diff --git a/es/um/redes/nanoFiles/logic/NFController.java b/es/um/redes/nanoFiles/logic/NFController.java index 2fe9839..fe91dd9 100644 --- a/es/um/redes/nanoFiles/logic/NFController.java +++ b/es/um/redes/nanoFiles/logic/NFController.java @@ -160,6 +160,12 @@ public class NFController { * servidor escucha conexiones de otros peers así como la lista de ficheros * disponibles. */ + + //Comprobamos si ya estamos sirviendo + if (controllerPeer.getServerPort() != 0) { + System.err.println("* Ya existe un servidor de ficheros activo en el puerto " + controllerPeer.getServerPort()); + break; + } if (NanoFiles.testModeTCP) { controllerPeer.testTCPServer(); } else { diff --git a/es/um/redes/nanoFiles/logic/NFControllerLogicDir.class b/es/um/redes/nanoFiles/logic/NFControllerLogicDir.class new file mode 100644 index 0000000..3f9c571 Binary files /dev/null and b/es/um/redes/nanoFiles/logic/NFControllerLogicDir.class differ diff --git a/es/um/redes/nanoFiles/logic/NFControllerLogicP2P.class b/es/um/redes/nanoFiles/logic/NFControllerLogicP2P.class new file mode 100644 index 0000000..15a2a53 Binary files /dev/null and b/es/um/redes/nanoFiles/logic/NFControllerLogicP2P.class differ diff --git a/es/um/redes/nanoFiles/shell/NFCommands.class b/es/um/redes/nanoFiles/shell/NFCommands.class new file mode 100644 index 0000000..d841ca9 Binary files /dev/null and b/es/um/redes/nanoFiles/shell/NFCommands.class differ diff --git a/es/um/redes/nanoFiles/shell/NFShell.class b/es/um/redes/nanoFiles/shell/NFShell.class new file mode 100644 index 0000000..bd685d2 Binary files /dev/null and b/es/um/redes/nanoFiles/shell/NFShell.class differ diff --git a/es/um/redes/nanoFiles/tcp/client/NFConnector.class b/es/um/redes/nanoFiles/tcp/client/NFConnector.class new file mode 100644 index 0000000..f8e7cb4 Binary files /dev/null and b/es/um/redes/nanoFiles/tcp/client/NFConnector.class differ diff --git a/es/um/redes/nanoFiles/tcp/message/PeerMessage.class b/es/um/redes/nanoFiles/tcp/message/PeerMessage.class new file mode 100644 index 0000000..27178c3 Binary files /dev/null and b/es/um/redes/nanoFiles/tcp/message/PeerMessage.class differ diff --git a/es/um/redes/nanoFiles/tcp/message/PeerMessageOps.class b/es/um/redes/nanoFiles/tcp/message/PeerMessageOps.class new file mode 100644 index 0000000..fb4f5a9 Binary files /dev/null and b/es/um/redes/nanoFiles/tcp/message/PeerMessageOps.class differ diff --git a/es/um/redes/nanoFiles/tcp/message/PeerMessageTest.class b/es/um/redes/nanoFiles/tcp/message/PeerMessageTest.class new file mode 100644 index 0000000..cc5d5ac Binary files /dev/null and b/es/um/redes/nanoFiles/tcp/message/PeerMessageTest.class differ diff --git a/es/um/redes/nanoFiles/tcp/server/NFServer.class b/es/um/redes/nanoFiles/tcp/server/NFServer.class new file mode 100644 index 0000000..29582f7 Binary files /dev/null and b/es/um/redes/nanoFiles/tcp/server/NFServer.class differ diff --git a/es/um/redes/nanoFiles/tcp/server/NFServer.java b/es/um/redes/nanoFiles/tcp/server/NFServer.java index 3dd8e20..42e9c72 100644 --- a/es/um/redes/nanoFiles/tcp/server/NFServer.java +++ b/es/um/redes/nanoFiles/tcp/server/NFServer.java @@ -278,8 +278,13 @@ public class NFServer implements Runnable { msgOut.writeMessageToOutputStream(dos); } break; + + default: + System.err.println("* [Servidor] Recibido opcode inesperado o inválido"); + break; } + } } catch (IOException e) { e.printStackTrace(); diff --git a/es/um/redes/nanoFiles/tcp/server/NFServerState.class b/es/um/redes/nanoFiles/tcp/server/NFServerState.class new file mode 100644 index 0000000..5b41e0c Binary files /dev/null and b/es/um/redes/nanoFiles/tcp/server/NFServerState.class differ diff --git a/es/um/redes/nanoFiles/tcp/server/NFServerThread.class b/es/um/redes/nanoFiles/tcp/server/NFServerThread.class new file mode 100644 index 0000000..4b452cf Binary files /dev/null and b/es/um/redes/nanoFiles/tcp/server/NFServerThread.class differ diff --git a/es/um/redes/nanoFiles/udp/client/DirectoryConnector$DownloadedFile.class b/es/um/redes/nanoFiles/udp/client/DirectoryConnector$DownloadedFile.class new file mode 100644 index 0000000..a154b0f Binary files /dev/null and b/es/um/redes/nanoFiles/udp/client/DirectoryConnector$DownloadedFile.class differ diff --git a/es/um/redes/nanoFiles/udp/client/DirectoryConnector.class b/es/um/redes/nanoFiles/udp/client/DirectoryConnector.class new file mode 100644 index 0000000..d49307c Binary files /dev/null and b/es/um/redes/nanoFiles/udp/client/DirectoryConnector.class differ diff --git a/es/um/redes/nanoFiles/udp/client/DirectoryConnector.java b/es/um/redes/nanoFiles/udp/client/DirectoryConnector.java index 0c5a92a..caca377 100644 --- a/es/um/redes/nanoFiles/udp/client/DirectoryConnector.java +++ b/es/um/redes/nanoFiles/udp/client/DirectoryConnector.java @@ -6,6 +6,7 @@ import java.net.DatagramSocket; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.SocketTimeoutException; +import java.net.SocketException; import java.util.Map; import java.util.Arrays; import java.util.LinkedHashMap; @@ -115,21 +116,32 @@ public class DirectoryConnector { DatagramPacket pktFromServer = new DatagramPacket(responseData, responseData.length); int intentos = 0; boolean recibido = false; + //Hay que configurar el timeout antes del bucle + try { + socket.setSoTimeout(TIMEOUT); + } catch (SocketException e) { + System.err.println("* Error configurando el timeout del socket UDP: " + e.getMessage()); + return null; + } while (intentos < MAX_NUMBER_OF_ATTEMPTS && !recibido) { try { socket.send(pktToServer); - socket.setSoTimeout(TIMEOUT); socket.receive(pktFromServer); recibido = true; - } catch (IOException e) { + //excepciones tratadas + } catch (SocketTimeoutException e){ intentos++; - if (intentos == MAX_NUMBER_OF_ATTEMPTS) { - System.err.println("DirectoryConnector.sendAndReceiveDatagrams: socket.receive()"); - System.exit(-1); - } + System.err.println("* Timeout. Reintentando... (" + intentos + "/" + MAX_NUMBER_OF_ATTEMPTS + ")"); + } catch (IOException e) { + System.err.println("* Error grave de I/O en UDP: " + e.getMessage()); + System.exit(-1); } + + } + if (intentos == MAX_NUMBER_OF_ATTEMPTS) { + System.err.println("* El directorio no responde tras " + MAX_NUMBER_OF_ATTEMPTS + " intentos."); + System.exit(-1); } - String servResp = new String(responseData, 0, pktFromServer.getLength()); response = servResp.getBytes(); System.out.println("Hemos recibido " + servResp); diff --git a/es/um/redes/nanoFiles/udp/message/DirMessage.class b/es/um/redes/nanoFiles/udp/message/DirMessage.class new file mode 100644 index 0000000..20abec9 Binary files /dev/null and b/es/um/redes/nanoFiles/udp/message/DirMessage.class differ diff --git a/es/um/redes/nanoFiles/udp/message/DirMessageOps.class b/es/um/redes/nanoFiles/udp/message/DirMessageOps.class new file mode 100644 index 0000000..70d8101 Binary files /dev/null and b/es/um/redes/nanoFiles/udp/message/DirMessageOps.class differ diff --git a/es/um/redes/nanoFiles/udp/server/NFDirectoryServer.class b/es/um/redes/nanoFiles/udp/server/NFDirectoryServer.class new file mode 100644 index 0000000..5efe375 Binary files /dev/null and b/es/um/redes/nanoFiles/udp/server/NFDirectoryServer.class differ diff --git a/es/um/redes/nanoFiles/util/FileDatabase.class b/es/um/redes/nanoFiles/util/FileDatabase.class new file mode 100644 index 0000000..72c54f0 Binary files /dev/null and b/es/um/redes/nanoFiles/util/FileDatabase.class differ diff --git a/es/um/redes/nanoFiles/util/FileDigest.class b/es/um/redes/nanoFiles/util/FileDigest.class new file mode 100644 index 0000000..a16d998 Binary files /dev/null and b/es/um/redes/nanoFiles/util/FileDigest.class differ diff --git a/es/um/redes/nanoFiles/util/FileInfo.class b/es/um/redes/nanoFiles/util/FileInfo.class new file mode 100644 index 0000000..5754009 Binary files /dev/null and b/es/um/redes/nanoFiles/util/FileInfo.class differ diff --git a/es/um/redes/nanoFiles/util/FileNameUtil.class b/es/um/redes/nanoFiles/util/FileNameUtil.class new file mode 100644 index 0000000..ed3dd36 Binary files /dev/null and b/es/um/redes/nanoFiles/util/FileNameUtil.class differ diff --git a/es/um/redes/nanoFiles/util/NickGenerator.class b/es/um/redes/nanoFiles/util/NickGenerator.class new file mode 100644 index 0000000..cf0b8c4 Binary files /dev/null and b/es/um/redes/nanoFiles/util/NickGenerator.class differ