Skip to content

This project is a complete implementation of a Trivial File Transfer Protocol (TFTP) Client and Server using Java. The TFTP protocol is a simple, lockstep, file transfer protocol that allows for basic file transfer operations over UDP.

Notifications You must be signed in to change notification settings

Samriddhi903/TFTPClientServer

Repository files navigation

TFTP Client-Server Implementation in Java

Setup Requirements

Prerequisites

  • Java Development Kit (JDK) 8 or higher
  • Git
  • VMware/VirtualBox (or any virtualization software)
  • Two Virtual Machines (VMs) running Ubuntu

Installation Steps

Clone the Repository on Both VMs

git clone https://github.com/Samriddhi903/TFTPClientServer.git
cd TFTPClientServer

Server Setup

  1. Create credentials.txt file: This file must contain valid username-password pairs, e.g.:
user1:password1
user2:password2
  1. Compile and Run the Server
javac TFTPServer.java
java TFTPServer

Client Setup

  1. Compile and Run the Client
javac TFTPClient.java
java TFTPClient

Usage Instructions

  1. Ensure Server is Running: Start the server on one VM.
  2. Authenticate via Client: Enter valid credentials from credentials.txt.
  3. Select Operation: Choose to upload or download files.
  4. File Transfer: Monitor the transfer status in the terminal.

Project Structure

TFTPClientServer/
├── client_files/          # Files for client access
├── server_files/          # Files stored on the server
├── credentials.txt        # Server-side credentials file
├── TFTPServer.java        # Server implementation
├── TFTPClient.java        # Client implementation
└── README.md              # Project documentation

Additional Notes

  • Ensure the VMs are networked properly (use NAT or Bridged mode).
  • The server VM must have port 69 (TFTP) open and accessible.
  • Verify that both VMs can ping each other before starting the server and client.

Contributing

  1. Fork the repository
  2. Create a new branch
git checkout -b feature-branch
  1. Commit your changes
git commit -m 'Add new feature'
  1. Push to the branch
git push origin feature-branch
  1. Open a pull request

License

This project is licensed under the MIT License.

About

This project is a complete implementation of a Trivial File Transfer Protocol (TFTP) Client and Server using Java. The TFTP protocol is a simple, lockstep, file transfer protocol that allows for basic file transfer operations over UDP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages