A simple encrypted file transfer application developed in Java.
Secure file transfer application.
Explore the docs »
To get a local copy up and running follow these simple steps.
- Clone the repo
git clone https://github.com/github_username/repo_name.git
- Package the project
mvn clean package
To run the server, you just have to execute the jar file:
java -jar server.jar
Once you started the server, you can prompt command, there is the commands list:
- stop
- help
The client can be run on any desktop os (OSx, Windows & Linux) by double clicking on it.
Once you launched the client interface, you needs to prompt an hostname. You can launch your own server and prompt its hostname.
Packets are groups of information sent across the network. The packets can contain any type of information, they will ultimately be transformed into bytes to facilitate their transport. Once received, the bytes corresponding to the packet information will be transformed back to their initial state. Note that each packet have a unique identifier to be able to identify them, all these identifiers are stored in a centralized file.
Here are two diagrams explaining how they work:
To transport files across the network, the best solution I've found is to split the files into slices. Each slice is sent across the network in specific packets. Once received, a confirmation packet is sent to the sender. Once the confirmation packet is received, a new slice is sent. This way you don't lose any slice in the process.
Here are a diagram explaining slices works:
Here is a list of things that can be greatly improved:
- File slicing can be way more efficient.
- File transfer can be improved by reworking how they work, especially by improving errors and results handling.
- Client UI can be more intuitive with a single page containing all uploaded files and a button to upload new files. Maybe the hostname prompt can be removed to auto-connect to the server.
Roch Blondiaux :earth_americas: www.roch-blondiaux.com 📧 [email protected]