/Banter

A P2P application that facilitates the sharing of Machine Learning Datasets inside a Domain.

Primary LanguageJavaGNU General Public License v2.0GPL-2.0

Banter

A peer to peer file sharing tool that facilitates the transfer of Machine Learning Datasets inside a small scale domain.

Installation

The project uses Gradle as it's build tool. So building the application into a jar file requires gradlew to be run with the jar argument.

cd Banter
./gradlew jar

For Windows it would be:

cd ..location_here
gradlew jar

Usage

After the jar file has been built, the jar file will be stored in build/libs. The jar file requires 3 arguments to run:

java -jar Banter.x.x.jar <mode> <filename/path> <ip.addr.to.comm>

--send/--recv - Defines whether the program will run in Client or Server mode.

fileName - The filename that needs to be sent or the name of the file recieved ( user defined ).

addr.to.send.from/addr.to.recv.from - This field requires the source or the destination IP address for establishing the connection. ( Multiple IP addresses supported )

Example given: java -jar Banter-1.0-NOGUI.jar --send test.txt 10.11.17.18

This starts the program in Client mode and sends the file test.txt which is present in the same directory as the jar file, to the specified IP address 10.11.17.18.

TODO

Adding multithreading for bigger files [DONE]

Dynamic chunks based on filesize instead of the predefined 4 * 1024

Ip address storing/display field

File size percentage display

Pause/resume support

Broadcasting to multiple nodes at once [DONE]