client is able to close the connection, but the server IS NOT

This commit is contained in:
Flavien Haas 2020-03-02 15:31:37 +01:00
parent 11fcaa25ea
commit e6d950d16b
3 changed files with 18 additions and 17 deletions

View File

@ -123,7 +123,7 @@ public class ClientManagementTCP implements Runnable {
* @throws EmptyFile
*/
private void download(String filename) throws EmptyFile, NotFound, InternalError, UnknownHostException, IOException, TransmissionError, ProtocolError, VersionError, SizeError, InternalRemoteError, ProtocolRemoteError, VersionRemoteError {
final long MAX_PARTIAL_SIZE = 1024;
final long MAX_PARTIAL_SIZE = 4096;
ProtocolP2PPacketTCP d = new ProtocolP2PPacketTCP((Payload) new LoadRequest(filename, 0, MAX_PARTIAL_SIZE));
d.sendRequest((Object)socket);
boolean fileFullyWritten = false;
@ -177,7 +177,7 @@ public class ClientManagementTCP implements Runnable {
d = new ProtocolP2PPacketTCP((Payload) new LoadRequest(filename, offset, MAX_PARTIAL_SIZE));
d.sendRequest((Object)socket);
}
} else {
System.err.println("offset: " + fp.getOffset() + " ; content.length: " + fp.getPartialContent().length + " ; totalSize: " + fp.getTotalSize());
System.err.println("Error: cannot handle non-consecutive partial files (not implemented)");
@ -188,6 +188,7 @@ public class ClientManagementTCP implements Runnable {
throw new ProtocolError();
}
} while(!fileFullyWritten);
socket.close();
}
/** list servers directory content

View File

@ -121,7 +121,7 @@ public class ClientManagementUDP implements Runnable {
* @throws EmptyFile
*/
private void download(String filename) throws EmptyFile, NotFound, InternalError, UnknownHostException, IOException, TransmissionError, ProtocolError, VersionError, SizeError, InternalRemoteError, ProtocolRemoteError, VersionRemoteError {
final long MAX_PARTIAL_SIZE = 1024;
final long MAX_PARTIAL_SIZE = 4096;
ProtocolP2PPacketUDP d = new ProtocolP2PPacketUDP((Payload) new LoadRequest(filename, 0, MAX_PARTIAL_SIZE));
d.sendRequest((Object)socket);
boolean fileFullyWritten = false;
@ -175,7 +175,7 @@ public class ClientManagementUDP implements Runnable {
d = new ProtocolP2PPacketUDP((Payload) new LoadRequest(filename, offset, MAX_PARTIAL_SIZE));
d.sendRequest((Object)socket);
}
} else {
System.err.println("offset: " + fp.getOffset() + " ; content.length: " + fp.getPartialContent().length + " ; totalSize: " + fp.getTotalSize());
System.err.println("Error: cannot handle non-consecutive partial files (not implemented)");

View File

@ -57,7 +57,7 @@ public class ServerManagementTCP implements Runnable {
System.exit(-1);
} catch (IOException e) {
System.err.println("Error: cannot openning TCP socket");
System.exit(-2);
System.exit(-2);
}
}
@ -68,7 +68,7 @@ public class ServerManagementTCP implements Runnable {
try {
Socket s = socket.accept();
System.err.println("Accepting new connection");
while(true) {
do {
try {
ProtocolP2PPacketTCP pd = new ProtocolP2PPacketTCP((Object)s);
Payload p = pd.getPayload();
@ -110,7 +110,7 @@ public class ServerManagementTCP implements Runnable {
for (String f: fileList) {
System.err.println("- " + f);
}
throw new IOException(); // to send a NOT_FOUND in the catch block
}
} catch (IOException e) {
@ -139,14 +139,17 @@ public class ServerManagementTCP implements Runnable {
default:
sendInternalError(pd);
}
} catch (IOException e) {
} catch (TransmissionError e) {
} catch (ProtocolError e) {
} catch (VersionError e) {
} catch (InternalError e) {
} catch (SizeError e) {
} catch (SocketException e) {
System.out.println("connection closed");
s.close();
}
}
catch (IOException e) {}
catch (TransmissionError e) {}
catch (ProtocolError e) {}
catch (VersionError e) {}
catch (InternalError e) {}
catch (SizeError e) {}
} while(true);
} catch (IOException e) {
}
}
@ -168,8 +171,6 @@ public class ServerManagementTCP implements Runnable {
Arrays.sort(fileList);
}
/** Send an internal error message.
* @param pd ProtocolP2PPacketTCP to respond
*/
@ -182,4 +183,3 @@ public class ServerManagementTCP implements Runnable {
}
}