This is a peer-to-peer file sharing application that allows users to share files with each other over a local network. The application uses Java's socket library and multithreading to handle multiple connections simultaneously. The application is designed to be simple and easy to use, with a graphical user interface (GUI) built using JavaFX.
- Peer-to-peer file sharing
- Multithreading support for handling multiple connections
- Service discovery using self registration
- Graphical user interface (GUI) built with JavaFX
- File transfer progress indicator
- Java 17 or higher
- JavaFX
- Maven (for building the project)
- Clone the repository:
git clone https://github.com/vmskonakanchi/peer-2-peer-file-share.git- Navigate to the project directory:
cd peer-2-peer-file-share- Build the project using Maven:
mvn clean install- Run the application:
java -jar discovery-service/target/vamsi-discovery-0.1.jar <port
java -jar ./out/torrent-service.jar <port> <service-discovery-server-host> <service-discovery-server-port> <folder-to-download-or-share>- Start the discovery service on a specific port.
- Start the torrent service on a specific port, providing the host and port of the discovery service and the folder to download or share files.
- Use the GUI to select files to download or share.
- Monitor the file transfer progress in the GUI.
- Once the file transfer is complete, the file will be available in the specified folder.
If you would like to contribute to this project, please fork the repository and create a pull request with your changes. We welcome contributions from the community!
This project is licensed under the MIT License. See the LICENSE file for details.