WIP: Aide tracker #63

Closed
louis_royer wants to merge 12 commits from clitracker into etape4
3 changed files with 70 additions and 56 deletions
Showing only changes of commit 387a487d83 - Show all commits

View File

@ -1,6 +1,7 @@
package serverP2P;
import java.util.Scanner;
import javafx.util.Pair;
import serverP2P.ServerManagementUDP;
import serverP2P.ServerManagementTCP;
import tools.Directories;
@ -47,63 +48,79 @@ public class ServerP2P {
final String defaultHostname = "localhost";
final String defaultPortServer = "7070";
final String defaultPortTracker = "6969";
String hostnameServer = "";
String portServer = "";
String hostnameTracker = "";
String portTracker = "";
Scanner scanner = new Scanner(System.in);
TestPort testPort = new TestPort();
System.out.println("Server, enter hostname to bind (default = localhost): ");
String hostnameServer = scanner.nextLine();
if(hostnameServer.equals("")){
hostnameServer = defaultHostname;
System.out.println("using default hostname : " + hostnameServer);
} else{
if ((args.length != 5) && (args.length != 0)){
System.out.println("usage : java serveurP2P.ServeurP2P (interactive) or java serveurP2P.ServeurP2P -- <serveurHOSTNAME> <serveurPORT> <trackerHOSTNAME> <trackerPORT>");
}
else{
if(args.length == 5){
hostnameServer = args[1];
portServer = args[2];
hostnameTracker = args[3];
portTracker = args[4];
}
else{
System.out.println("Server, enter hostname to bind (default = localhost): ");
hostnameServer = scanner.nextLine();
if(hostnameServer.equals("")){
hostnameServer = defaultHostname;
System.out.println("using default hostname : " + hostnameServer);
}
System.out.println("enter port (default = 7070): ");
portServer = scanner.nextLine();
if(portServer.equals("")){
portServer = defaultPortServer;
System.out.println("using default port : " + portServer);
}
System.out.println("enter hostname of tracker (default = localhost): ");
hostnameTracker = scanner.nextLine();
if(hostnameTracker.equals("")){
hostnameTracker = defaultHostname;
System.out.println("tracker default hostname : " + hostnameTracker);
}
System.out.println("enter tracker's port (default = 6969): ");
portTracker = scanner.nextLine();
if(portTracker.equals("")){
portTracker = defaultPortTracker;
System.out.println("using default port : " + portTracker);
}
}
System.out.println("using hostname : " + hostnameServer);
}
System.out.println("enter port (default = 7070): ");
String portServer = scanner.nextLine();
if(portServer.equals("")){
portServer = defaultPortServer;
System.out.println("using default port : " + portServer);
}
else {
if(!testPort.testPortServer(Integer.parseInt(portServer))){
System.out.println("Wrong port (7000 -> 7999), using default port 7070");
portServer = defaultPortServer;
} else {
Pair<Integer, String> PtestPortServer = testPort.testPortServer(Integer.parseInt(portServer));
if(PtestPortServer.getKey() == 0){
System.out.println("using port : " + portServer);
}
}
System.out.println("enter hostname of tracker (default = localhost): ");
String hostnameTracker = scanner.nextLine();
if(hostnameTracker.equals("")){
hostnameTracker = defaultHostname;
System.out.println("tracker default hostname : " + hostnameTracker);
} else{
else {
System.out.println(PtestPortServer.getValue());
portServer = defaultPortServer;
}
System.out.println("tracker hostname : " + hostnameTracker);
}
System.out.println("enter tracker's port (default = 6969): ");
String portTracker = scanner.nextLine();
if(portTracker.equals("")){
portTracker = defaultPortTracker;
System.out.println("using default port : " + portTracker);
}
else {
if(!testPort.testPortTracker(Integer.parseInt(portTracker))){
System.out.println("Wrong port (6000 -> 6999), using default port 6969");
portTracker = defaultPortTracker;
} else {
Pair<Integer, String> PtestPortTracker = testPort.testPortTracker(Integer.parseInt(portTracker));
if(PtestPortTracker.getKey() == 0){
System.out.println("using port : " + portTracker);
}
}
else {
System.out.println(PtestPortTracker.getValue());
portTracker = defaultPortTracker;
}
ServerP2P s = new ServerP2P(portServer, hostnameTracker, portTracker);
ServerManagementUDP smudp = new ServerManagementUDP(s.directories.getDataHomeDirectory() + subdir, hostnameServer, s.port, s.logger, s.tracker);
ServerManagementTCP smtcp = new ServerManagementTCP(s.directories.getDataHomeDirectory() + subdir, hostnameServer, s.port, s.logger, s.tracker);
Thread tudp = new Thread(smudp);
tudp.setName("server UDP P2P-JAVA-PROJECT");
tudp.start();
Thread ttcp = new Thread(smtcp);
ttcp.setName("server TCP P2P-JAVA-PROJECT");
ttcp.start();
}
ServerP2P s = new ServerP2P(portServer, hostnameTracker, portTracker);
ServerManagementUDP smudp = new ServerManagementUDP(s.directories.getDataHomeDirectory() + subdir, hostnameServer, s.port, s.logger, s.tracker);
ServerManagementTCP smtcp = new ServerManagementTCP(s.directories.getDataHomeDirectory() + subdir, hostnameServer, s.port, s.logger, s.tracker);
Thread tudp = new Thread(smudp);
tudp.setName("server UDP P2P-JAVA-PROJECT");
tudp.start();
Thread ttcp = new Thread(smtcp);
ttcp.setName("server TCP P2P-JAVA-PROJECT");
ttcp.start();
}
}
}

View File

@ -10,12 +10,11 @@ import javafx.util.Pair;
*/

missing javadoc

missing javadoc
public class TestPort {

méthode static

méthode static

expliquer brièvement en commentaire le pourquoi du choix de cette plage de port (avec le lien vers wikipedia si besoin)

expliquer brièvement en commentaire le pourquoi du choix de cette plage de port (avec le lien vers wikipedia si besoin)
public boolean testPortServer(int port, String message) {
public Pair<Integer,String> testPortServer(int port) {

si tu change en
public static boolean testPortServer(…)
tu n’aura plus besoin de faire ton
TestPort testPort = new TestPort(); avant de l’utiliser (tu pourra l’utiliser avec TestPort.testPortServer(port, message) directement).
D’ailleurs, je pense que tu ne devrais pas passer la variable message, mais plutôt quelque chose du genre:

private static int portMinServer = 7000;
private static int portMaxServer = 7999;

public static String getRangeServer() {
	return portMinServer + " -> " + portMaxServer;
}

public static boolean isPortServerValid(int port) {
	if ((port >= portMinServer) && (port <= maxServer)) {
    	return true;
    } else {
    	return false;
    }
}

et idem pour le tracker.

si tu change en `public static boolean testPortServer(…)` tu n’aura plus besoin de faire ton `TestPort testPort = new TestPort();` avant de l’utiliser (tu pourra l’utiliser avec `TestPort.testPortServer(port, message)` directement). D’ailleurs, je pense que tu ne devrais pas passer la variable message, mais plutôt quelque chose du genre: ```java private static int portMinServer = 7000; private static int portMaxServer = 7999; public static String getRangeServer() { return portMinServer + " -> " + portMaxServer; } public static boolean isPortServerValid(int port) { if ((port >= portMinServer) && (port <= maxServer)) { return true; } else { return false; } } ``` et idem pour le tracker.
ping @flavien @js_auge
if((port > 7000) && (port < 7999)){
return true;
return new Pair<>(0,"");
}
message = message + "Wrong port (7000 -> 7999), using default port 7070";
return false;
return new Pair<>(1, "Wrong port (7000 -> 7999), using default port 7070");
}

méthode static

méthode static

expliquer brièvement en commentaire le pourquoi du choix de cette plage de port (avec le lien vers wikipedia si besoin)

expliquer brièvement en commentaire le pourquoi du choix de cette plage de port (avec le lien vers wikipedia si besoin)
public Pair<Integer,String> testPortTracker(int port) {

View File

@ -48,10 +48,8 @@ public class Tracker {
String port;
Tracker t;
System.out.println("args.lenght : " + args.length);
if ((args.length != 3) && (args.length != 0)){
System.out.println("usage : java tracker.Tracker or java trackerP2P.trackerP2P -- <hostname> <PORT> (default localhost:6969, range 6000 -> 6999)");
System.out.println("usage : java tracker.Tracker (interactive) or java trackerP2P.trackerP2P -- <hostname> <PORT> (default localhost:6969, range 6000 -> 6999)");
}

faire une méthode dans TestPort qui permet d’afficher la range, pour tout regrouper dans une seule classe (les extrémités de numéro de ports pourront être mis dans des variables static)

faire une méthode dans TestPort qui permet d’afficher la range, pour tout regrouper dans une seule classe (les extrémités de numéro de ports pourront être mis dans des variables static)
else{

FIXME

FIXME
if(args.length == 3){