- Users can register with the application by providing their credentials (e.g., username and password).
- Registered users can log in with their credentials to access their cloud storage.
- Users can log out from their sessions to securely end their access to the system.
- Users have sessions associated with their logins to maintain their authentication state.
- Users can upload files from their local storage to the server.
- The application should handle large files, possibly by splitting them into smaller chunks for efficient transfer.
- Users can browse and select files stored on the server for download.
- The application should provide options to download files to the local machine.
- Users can move and copy files within their cloud storage.
- They can create folders or directories to organize their files.
- Implement rate limiting to restrict the number of requests a user can make within a given time frame to prevent abuse or overloading the server.
- Implement error handling to provide meaningful error messages to users when issues arise.
- Maintain logs for system and security auditing purposes.
- Create a user-friendly interface for both the server and client applications with appropriate messages and hints for users.
The server, by default, listens on port 8080. To change the port, modify the PORT
constant in the Server.java
file. Ensure to update the port in the client constant in Client.java
accordingly.
-
Open the project.
-
Project Navigation:
- Navigate to
src/main/java
. - Locate the package
org.example
. - Find the class
ServerApp.java
.
- Navigate to
-
Run 'ServerApp.main()'. This will start the server application.
-
Open the project.
-
Project Navigation:
- Navigate to
src/main/java
. - Locate the package
org.example
. - Find the class
ClientApp.java
.
- Navigate to
-
Run 'ClientApp.main()'. This will start the client application.
The server is now running, ready to accept client connections.
You can launch multiple client instances to connect to the server.
The application provides hints and messages to guide you through its usage.
Chunk Write Handler is used for transferring big files between the client and the server.