diff --git a/src/clientP2P/ClientManagement.java b/src/clientP2P/ClientManagement.java index 97f07d2..2c00d5f 100644 --- a/src/clientP2P/ClientManagement.java +++ b/src/clientP2P/ClientManagement.java @@ -1,11 +1,14 @@ package clientP2P; -import tools.HostItem; -import tools.Logger; -import tools.LogLevel; + +import java.util.Arrays; import java.util.Scanner; import java.util.List; -import localException.ProtocolError; -import tools.ServeErrors; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.net.UnknownHostException; import protocolP2P.RequestResponseCode; import protocolP2P.FileList; import protocolP2P.ProtocolP2PPacket; @@ -13,6 +16,7 @@ import protocolP2P.DiscoverRequest; import protocolP2P.DiscoverResponse; import protocolP2P.Payload; import protocolP2P.HashAlgorithm; +import localException.ProtocolError; import localException.InternalError; import localException.ProtocolError; import localException.SizeError; @@ -26,15 +30,10 @@ import remoteException.NotFound; import remoteException.ProtocolRemoteError; import remoteException.VersionRemoteError; import remoteException.NotATracker; -import remoteException.UnknownHost; -import java.io.IOException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.net.UnknownHostException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Arrays; - +import tools.ServeErrors; +import tools.HostItem; +import tools.Logger; +import tools.LogLevel; /** Implementation of P2P-JAVA-PROJECT CLIENT * @author Louis Royer @@ -51,7 +50,7 @@ public abstract class ClientManagement extends ServeErrors implements Runnable { protected Logger logger; protected Scanner scanner; protected ClientDownload downLoader; - + /** Constructor with baseDirectory, tracker, partsSubdir, logger, and scanner parameters. * @param baseDirectory the root directory where files are stored * @param tracker Tracker hostItem @@ -78,7 +77,7 @@ public abstract class ClientManagement extends ServeErrors implements Runnable { /** Getter for tracker socket */ - protected abstract Object getTrackerSocket(); + protected abstract Object getTrackerSocket(); /** Initialize hostList from tracker @@ -230,14 +229,30 @@ public abstract class ClientManagement extends ServeErrors implements Runnable { */ public void run() { try { + int i = 1; String[] list = listDirectory(); System.out.println("Files present on the server:"); + System.out.println("0 : Exit the program"); for(String listItem: list) { - System.out.println(listItem); + System.out.println(i + " : " + listItem); + i++; } - System.out.println("Name of the file to download:"); + System.out.println("Type the number associated with the file to download:"); String f = scanner.nextLine(); - download(f); + if(f.equals("0")){ + System.out.println("on ferme tout"); + } + else{ + int j = Integer.parseInt(f); + if(j <= list.length){ + j = j-1; + download(list[j]); + } + else{ + System.out.println("Wrong number"); + } + } + //download(f); System.out.println("File " + f + " sucessfully downloaded"); writeLog("File " + f + " sucessfully downloaded", LogLevel.Info); } catch (EmptyDirectory e) { diff --git a/src/clientP2P/ClientP2P.java b/src/clientP2P/ClientP2P.java index 15c8acc..ec63ef3 100644 --- a/src/clientP2P/ClientP2P.java +++ b/src/clientP2P/ClientP2P.java @@ -4,7 +4,6 @@ import java.util.Scanner; import java.util.List; import clientP2P.ClientManagementUDP; import clientP2P.ClientManagementTCP; - import serverP2P.ServerManagementUDP; import serverP2P.ServerManagementTCP; import tools.Logger; @@ -14,7 +13,6 @@ import tools.HostItem; import tools.ServerPortRange; import tools.TrackerPortRange; - /** Client + Server implementation. * @author Louis Royer * @author Flavien Haas @@ -31,7 +29,7 @@ public class ClientP2P { private HostItem tracker; private HostItem server; private Scanner scanner; - + /** Initialize loggers if directories and logger are null, * else fail silently. */ @@ -49,7 +47,7 @@ public class ClientP2P { * @param hostnameServer hostname to bind * @param portServer port to bind * @param hostnameTracker hostname of tracker - * @param portTracker port of tracker + * @param portTracker port of tracker */ public ClientP2P(String hostnameServer, int portServer, String hostnameTracker, int portTracker) { scanner = new Scanner(System.in);