aide tracker

pull/63/head
Flavien Haas 4 years ago committed by Louis
parent 1355ef14b1
commit 3edb0bf9e5

@ -6,6 +6,12 @@ Lien vers le [document original](https://stri-online.net/FTLV/mod/resource/view.
**But** : le but de ce projet est de créer une application répartie en Java de téléchargement de fichier en mode P2P (peer to peer ou poste à poste). **But** : le but de ce projet est de créer une application répartie en Java de téléchargement de fichier en mode P2P (peer to peer ou poste à poste).
Les étapes suivantes sont conseillées. Les étapes suivantes sont conseillées.
# Usage
tracker : java -ea tracker.Tracker, to specify port (default localhost:6969, range 6000 -> 6999): java -ea trackerP2P.trackerP2P -- <PORT>
serveur : java -ea serveurP2P.ServeurP2P, to specify port and tracker (default for server localhost:7070 tracker localhost:6969, range 7000 -> 7999): java -ea serveurP2P.ServeurP2P -- <serveurPORT> <trackerHOSTNAME> <trackerPORT>
client/serveur : java -ea clientP2P.ClientP2P -- <serverPORT> <trackerHOSTNAME> <trackerPORT>
## Étape 1 : Téléchargement à la FTP ## Étape 1 : Téléchargement à la FTP
La première étape doit permettre de télécharger un fichier en intégralité d'une machine vers une autre machine de façon similaire aux applications suivant le protocole FTP. La première étape doit permettre de télécharger un fichier en intégralité d'une machine vers une autre machine de façon similaire aux applications suivant le protocole FTP.

@ -73,7 +73,7 @@ public class ClientP2P {
*/ */
public static void main(String [] args) { public static void main(String [] args) {
if (args[1].equals("help") || args[1].equals("-h") || args[1].equals("h")){ if (args[1].equals("help") || args[1].equals("-h") || args[1].equals("h")){
System.out.println("usage : java -ea clientP2P.ClientP2P -- <PORT> "); System.out.println("usage : java -ea clientP2P.ClientP2P -- <serverPORT> <trackerHOSTNAME> <trackerPORT>");
} }
else{ else{
ClientP2P c; ClientP2P c;

@ -0,0 +1,27 @@
package tools;
/** Test ports.
* @author Louis Royer
* @author Flavien Haas
* @author JS Auge
* @version 1.0
*/
public class TestPort {
public boolean testPortServer(int port) {
if((port > 7000) && (port < 7999)){
return true;
}
return false;
}
public boolean testPortTracker(int port) {
if((port > 6000) && (port < 6999)){
return true;
}
return false;
}
}

@ -1,9 +1,12 @@
package tracker; package tracker;
import java.util.Scanner;
import tracker.TrackerManagementTCP; import tracker.TrackerManagementTCP;
import tracker.TrackerManagementUDP; import tracker.TrackerManagementUDP;
import tools.Directories; import tools.Directories;
import tools.Logger; import tools.Logger;
import java.util.Scanner; import tools.LogLevel;
import tools.TestPort;
/** Tracker implementation /** Tracker implementation
* First argument of main method is port listened by the tracker, and is mandatory. * First argument of main method is port listened by the tracker, and is mandatory.
@ -16,6 +19,7 @@ public class Tracker {
private int port; private int port;
private Directories directories; private Directories directories;
private Logger logger; private Logger logger;
private static final int defaultPort = 6969;
/** Constructor with portStr containing a port number. /** Constructor with portStr containing a port number.
* @param portStr String containing port number of listening. * @param portStr String containing port number of listening.
@ -36,7 +40,22 @@ public class Tracker {
* @param args parameters * @param args parameters
*/ */
public static void main(String [] args) { public static void main(String [] args) {
Tracker t = new Tracker(args[1]); if (args[1].equals("help") || args[1].equals("-h") || args[1].equals("h")){
System.out.println("usage : java -ea trackerP2P.trackerP2P, to specify port (default 6969, range 6000 -> 6999): java -ea trackerP2P.trackerP2P -- <PORT>");
}
else{
Tracker t;
TestPort testPortTracker = new TestPort();
if(testPortTracker.testPortTracker(Integer.parseInt(args[1]))){
t = new Tracker(args[1]);
}
else {
System.out.println("Wrong port (6000 -> 6999), using default port 6969");
t = new Tracker(String.valueOf(defaultPort));
//t.logger.writeUDP("Wrong port (6000 -> 6999), using default port 6969", LogLevel.Warning);
//t.logger.writeTCP("Wrong port (6000 -> 6999), using default port 6969", LogLevel.Warning);
}
TrackerManagementUDP tmudp = new TrackerManagementUDP(t.port, t.logger); TrackerManagementUDP tmudp = new TrackerManagementUDP(t.port, t.logger);
TrackerManagementTCP tmtcp = new TrackerManagementTCP(t.port, t.logger); TrackerManagementTCP tmtcp = new TrackerManagementTCP(t.port, t.logger);
Thread tudp = new Thread(tmudp); Thread tudp = new Thread(tmudp);
@ -46,5 +65,6 @@ public class Tracker {
ttcp.setName("Tracker TCP P2P-JAVA-PROJECT"); ttcp.setName("Tracker TCP P2P-JAVA-PROJECT");
ttcp.start(); ttcp.start();
} }
}
} }

@ -1,32 +1,32 @@
package tracker; package tracker;
import tools.Logger;
import tools.LogLevel; import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.io.IOException;
import java.net.ServerSocket; import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
import java.net.SocketException; import java.net.SocketException;
import java.net.UnknownHostException;
import java.net.InetAddress;
import protocolP2P.ProtocolP2PPacketTCP; import protocolP2P.ProtocolP2PPacketTCP;
import protocolP2P.ProtocolP2PPacket; import protocolP2P.ProtocolP2PPacket;
import protocolP2P.RequestResponseCode; import protocolP2P.RequestResponseCode;
import protocolP2P.Payload; import protocolP2P.Payload;
import protocolP2P.Register; import protocolP2P.Register;
import protocolP2P.Unregister; import protocolP2P.Unregister;
import tools.HostItem;
import java.util.ArrayList;
import java.util.List;
import java.io.IOException;
import exception.LocalException;
import java.util.Map;
import java.util.HashMap;
import protocolP2P.DiscoverRequest; import protocolP2P.DiscoverRequest;
import protocolP2P.DiscoverResponse; import protocolP2P.DiscoverResponse;
import protocolP2P.FileList; import protocolP2P.FileList;
import localException.InternalError; import exception.LocalException;
import remoteException.EmptyDirectory; import remoteException.EmptyDirectory;
import java.net.UnknownHostException; import localException.InternalError;
import java.net.InetAddress;
import localException.SocketClosed; import localException.SocketClosed;
import tracker.TrackerManagement; import tracker.TrackerManagement;
import tools.HostItem;
import tools.Logger;
import tools.LogLevel;
/** Tracker management implementation with tcp /** Tracker management implementation with tcp
* @author Louis Royer * @author Louis Royer
@ -114,6 +114,7 @@ public class TrackerManagementTCP extends TrackerManagement {
} }
} }
/** Implementation of writeLog /** Implementation of writeLog
* @param text Text to log * @param text Text to log
* @param logLevel level of logging * @param logLevel level of logging

Loading…
Cancel
Save