resolveissue94 (#98)

Fix #94.
- Server doesnt ask to open his home directory when arguments are passed.
- Tracker doesnt ask to open his home directory when arguments are passed.

Co-authored-by: Louis Royer <louis.royer@univ-tlse3.fr>
Co-authored-by: flavien <flavien.haas@outlook.fr>
pull/97/head
Flavien Haas 5 years ago committed by Louis Royer
parent e4f637f317
commit 8d5ef8a52b

@ -29,8 +29,9 @@ public class ServerP2P {
* @param portServer binded port * @param portServer binded port
* @param hostnameTracker tracker hostname * @param hostnameTracker tracker hostname
* @param portTracker tracker port * @param portTracker tracker port
* @param isInteractive true if application in interactive mode
*/ */
public ServerP2P(String hostnameServer, int portServer, String hostnameTracker, int portTracker) { public ServerP2P(String hostnameServer, int portServer, String hostnameTracker, int portTracker, boolean isInteractive) {
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
server = new HostItem(hostnameServer, portServer); server = new HostItem(hostnameServer, portServer);
tracker = new HostItem(hostnameTracker, portTracker); tracker = new HostItem(hostnameTracker, portTracker);
@ -38,7 +39,9 @@ public class ServerP2P {
directories.createSubdir(subdir); directories.createSubdir(subdir);
logger = new Logger(directories.getDataHomeDirectory() + "server.log"); logger = new Logger(directories.getDataHomeDirectory() + "server.log");
System.out.println("Server will listen on port " + portServer + " and serve files from " + directories.getDataHomeDirectory() + subdir); System.out.println("Server will listen on port " + portServer + " and serve files from " + directories.getDataHomeDirectory() + subdir);
if(isInteractive){
directories.askOpenDataHomeDirectory(subdir, scanner); directories.askOpenDataHomeDirectory(subdir, scanner);
}
scanner.close(); scanner.close();
} }
@ -56,6 +59,7 @@ public class ServerP2P {
String hostnameTracker = ""; String hostnameTracker = "";
int portTracker = 0; int portTracker = 0;
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
boolean isInteractive = false;
if ((args.length != 5) && (args.length != 0)){ if ((args.length != 5) && (args.length != 0)){
System.out.println("usage : java serveurP2P.ServeurP2P (interactive) or java serveurP2P.ServeurP2P -- <serveurHOSTNAME> <serveurPORT> <trackerHOSTNAME> <trackerPORT> (" + serverPortRange + " and " + trackerPortRange +")"); System.out.println("usage : java serveurP2P.ServeurP2P (interactive) or java serveurP2P.ServeurP2P -- <serveurHOSTNAME> <serveurPORT> <trackerHOSTNAME> <trackerPORT> (" + serverPortRange + " and " + trackerPortRange +")");
@ -67,6 +71,7 @@ public class ServerP2P {
hostnameTracker = args[3]; hostnameTracker = args[3];
portTracker = Integer.valueOf(Integer.parseInt(args[4])); portTracker = Integer.valueOf(Integer.parseInt(args[4]));
} else { } else {
isInteractive = true;
System.out.println("Server, enter hostname to bind (default = localhost): "); System.out.println("Server, enter hostname to bind (default = localhost): ");
hostnameServer = scanner.nextLine(); hostnameServer = scanner.nextLine();
if(hostnameServer.equals("")){ if(hostnameServer.equals("")){
@ -103,7 +108,7 @@ public class ServerP2P {
System.out.println("using port : " + portServer); System.out.println("using port : " + portServer);
System.out.println("tracker hostname : " + hostnameTracker); System.out.println("tracker hostname : " + hostnameTracker);
System.out.println("tracker port : " + portTracker); System.out.println("tracker port : " + portTracker);
ServerP2P s = new ServerP2P(hostnameServer, portServer, hostnameTracker, portTracker); ServerP2P s = new ServerP2P(hostnameServer, portServer, hostnameTracker, portTracker, isInteractive);
ServerManagementUDP smudp = new ServerManagementUDP(s.directories.getDataHomeDirectory() + subdir, s.server, s.tracker, s.logger); ServerManagementUDP smudp = new ServerManagementUDP(s.directories.getDataHomeDirectory() + subdir, s.server, s.tracker, s.logger);
ServerManagementTCP smtcp = new ServerManagementTCP(s.directories.getDataHomeDirectory() + subdir, s.server, s.tracker, s.logger); ServerManagementTCP smtcp = new ServerManagementTCP(s.directories.getDataHomeDirectory() + subdir, s.server, s.tracker, s.logger);
Thread tudp = new Thread(smudp); Thread tudp = new Thread(smudp);

@ -24,14 +24,17 @@ public class Tracker {
/** Constructor with portStr containing a port number. /** Constructor with portStr containing a port number.
* @param hostname hostname to bind * @param hostname hostname to bind
* @param port port to bind * @param port port to bind
* @param isInteractive true if application is in interactive mode
*/ */
public Tracker(String hostname, int port) { public Tracker(String hostname, int port, boolean isInteractive) {
tracker = new HostItem(hostname, port); tracker = new HostItem(hostname, port);
directories = new Directories("P2P_JAVA_PROJECT_TRACKER_" + port); directories = new Directories("P2P_JAVA_PROJECT_TRACKER_" + port);
logger = new Logger(directories.getDataHomeDirectory() + "tracker.log"); logger = new Logger(directories.getDataHomeDirectory() + "tracker.log");
System.out.println("Tracker will listen on port " + port + " and write logs into " + directories.getDataHomeDirectory()); System.out.println("Tracker will listen on port " + port + " and write logs into " + directories.getDataHomeDirectory());
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
if(isInteractive){
directories.askOpenDataHomeDirectory(null, scanner); directories.askOpenDataHomeDirectory(null, scanner);
}
scanner.close(); scanner.close();
} }
@ -47,6 +50,7 @@ public class Tracker {
String hostname = ""; String hostname = "";
int port = 0; int port = 0;
Tracker t; Tracker t;
boolean isInteractive = false;
if ((args.length != 3) && (args.length != 0)){ if ((args.length != 3) && (args.length != 0)){
System.out.println("usage : java tracker.Tracker (interactive) or java trackerP2P.trackerP2P -- <hostname> <PORT> (" + trackerPortRange +")"); System.out.println("usage : java tracker.Tracker (interactive) or java trackerP2P.trackerP2P -- <hostname> <PORT> (" + trackerPortRange +")");
@ -55,6 +59,7 @@ public class Tracker {
hostname = args[1]; hostname = args[1];
port = Integer.valueOf(Integer.parseInt(args[2])); port = Integer.valueOf(Integer.parseInt(args[2]));
} else { } else {
isInteractive = true;
System.out.println("Tracker Server, enter hostname to bind (default = localhost): "); System.out.println("Tracker Server, enter hostname to bind (default = localhost): ");
hostname = scanner.nextLine(); hostname = scanner.nextLine();
if(hostname.equals("")){ if(hostname.equals("")){
@ -74,7 +79,7 @@ public class Tracker {
System.out.println("using hostname : " + hostname); System.out.println("using hostname : " + hostname);
if(trackerPortRange.isPortInRange(port)) { if(trackerPortRange.isPortInRange(port)) {
System.out.println("using port : " + port); System.out.println("using port : " + port);
t = new Tracker(hostname, port); t = new Tracker(hostname, port, isInteractive);
TrackerManagementUDP tmudp = new TrackerManagementUDP(t.tracker, t.logger); TrackerManagementUDP tmudp = new TrackerManagementUDP(t.tracker, t.logger);
TrackerManagementTCP tmtcp = new TrackerManagementTCP(t.tracker, t.logger); TrackerManagementTCP tmtcp = new TrackerManagementTCP(t.tracker, t.logger);
Thread tudp = new Thread(tmudp); Thread tudp = new Thread(tmudp);

Loading…
Cancel
Save