Add send method + update documentation

pull/1/head
Louis Royer 4 years ago
parent e7b4d7a5c3
commit acaa363153

@ -1 +1 @@
<mxfile host="www.draw.io" modified="2020-01-12T21:02:58.379Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" etag="OeM4nER5jpnihrTPHdYv" version="12.5.1" type="device"><diagram id="MxademQTiYvtQCVb_gz8" name="Page-1">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</diagram></mxfile>
<mxfile host="www.draw.io" modified="2020-01-12T21:18:15.190Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" etag="AragDVgr5JVvbnQoNFHI" version="12.5.1" type="device"><diagram id="MxademQTiYvtQCVb_gz8" name="Page-1">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</diagram></mxfile>

@ -9,3 +9,4 @@ All messages begins with `P2P-JAVA-PROJECT VERSION 1.0\n` (this version of the p
- The response to `LIST` request is in the format `LIST\n<FILENAME 1>\n<FILENAME 2>\n[…]<LAST FILENAME>\n\n`
- The response to `DOWNLOAD` request is `LOAD <FILESIZE (BYTES)>\n<CONTENT OF FILE>` or `NOT FOUND\n` if the file doesn't exists.
- The server send a `PROTOCOL ERROR\n` message if it doesn't understands what the client sent.
- The server send a `INTERNAL ERROR\n` message if it encounters an internal error.

@ -0,0 +1,2 @@
package exception;
public class InternalError extends Exception {}

@ -6,6 +6,7 @@ import java.net.Datagram.Packet;
import java.net.Datagram.Socket;
import exception.ProtocolError;
import exception.NotFound;
import exception.InternalError;
/** Implementation of P2P-JAVA-PROJECT VERSION 1.0 protocol for UDP.
@ -85,6 +86,8 @@ public class ServerManagementUDP implements Runnable {
} catch (ProtocolError e) {
// wrong version or wrong implementation
res += sendProtocolError();
} catch (InternalError e) {
res += sendInternalError();
} catch (NotFound e) {
res += sendNotFound();
}
@ -118,9 +121,20 @@ public class ServerManagementUDP implements Runnable {
* @param filename name of the file to be send
* @return data to be send
* @throws NotFound
* @throws InternalError
*/
private String upload(String filename) throws NotFound {
// TODO
private String upload(String filename) throws NotFound, InternalError {
File file = new File(filename);
if (!file.exists() || !file.isFile()) {
throw NotFound;
}
String res = "LOAD " + file.length(); + "\n"
try {
res += new String(Files.readAllBytes(Paths.get(filename)));
} catch (IOException e) {
throw InternalError;
}
return res;
}
/** Prepare the data to be send if file list is requested
@ -147,5 +161,12 @@ public class ServerManagementUDP implements Runnable {
private String sendNotFound() {
return "NOT FOUND\n"
}
/** Prepare data to be send if internal error encounterred
* @return data to be send
*/
private String sendInternalError() {
return "INTERNAL ERROR\n"
}
}

Loading…
Cancel
Save