added functionnality to select a file to download by a number
flavien's git/Projet_JAVA_P2P_STRI2A/pipeline/pr-etape5 There was a failure building this commit Details

pull/88/head
Flavien Haas 5 years ago
parent c3b4d0660d
commit 1b6db26e0b

@ -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,14 +30,10 @@ import remoteException.NotFound;
import remoteException.ProtocolRemoteError;
import remoteException.VersionRemoteError;
import remoteException.NotATracker;
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
@ -49,7 +49,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
@ -74,7 +74,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
@ -220,14 +220,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) {

@ -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);

Loading…
Cancel
Save