Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NetShare File Transfer System

Overview

NetShare is a desktop-based client-server file transfer application developed using Python. The project allows users to transfer files between two computers connected on the same local network using HTTP communication over TCP.

One computer acts as a server by hosting a shared folder, while another computer acts as a client that can connect to the server, upload files, view available files, and download files.

The project demonstrates practical implementation of Computer Networks concepts such as:

  • Client-Server Architecture
  • IP Addressing
  • Port Communication
  • HTTP Protocol
  • TCP Reliable Communication
  • Request-Response Networking

Features

  • Upload files from client to server
  • Download files from server
  • View available files
  • GUI-based interface
  • Shared folder system
  • Lightweight and simple implementation
  • Reliable TCP-based communication
  • Windows executable support

Technologies Used

Technology Purpose
Python Core Programming Language
HTTP Application Layer Communication
TCP/IP Reliable Network Communication
PyInstaller EXE File Generation
GUI Framework Desktop User Interface

Requirements

  • Python 3.10 or higher
  • Windows Operating System
  • Local Network Connection

How NetShare Works

The application follows a client-server model.

Server Side

  • Hosts a shared folder
  • Starts a local server on a specific IP address and port
  • Handles upload and download requests

Client Side

  • Connects to the server using IP address and port
  • Uploads files
  • Downloads files
  • Refreshes available file list

Connection Setup Guide

Step 1: Find Server IP Address

Open Command Prompt on the server computer and type:

ipconfig

Look for the IPv4 Address.

Example:

IPv4 Address. . . . . . . . . . : 192.168.1.5

Copy this IP address.


Step 2: Start Server

  • Open NetShare
  • Go to the Server section
  • Select a shared folder
  • Start the server

Step 3: Connect Client

On another computer connected to the same network:

  • Open NetShare
  • Go to the Client section
  • Paste the server IP address
  • Enter the same port number used by the server
  • Click Connect

Once connected successfully, the client can communicate with the server.


Step 4: Upload Files

  • Select a file from Windows
  • Click Upload
  • The file will be transferred to the shared folder on the server system

Step 5: Download Files

  • Refresh the file list
  • Select any available file
  • Click Download
  • Choose destination folder

The selected file will be downloaded successfully.


Networking Concepts Implemented

Application Layer

HTTP protocol is used for communication between systems.

Transport Layer

TCP provides:

  • Reliable data transfer
  • Ordered delivery
  • Error checking
  • Retransmission support

Network Layer

IP addressing is used to identify communicating systems.


Build EXE File

Using :contentReference[oaicite:0]{index=0}:

pyinstaller --onefile netshare.py

The executable file will be generated inside the dist folder.


Screenshots

Terminal IP Configuration

This step is used to find the IPv4 address of the server system.

Terminal Screenshot


Server Interface

Server Screenshot


Client Interface

Client Screenshot


File Transfer

Transfer Screenshot


Future Improvements

  • User authentication system
  • HTTPS/TLS encryption
  • Multi-user support
  • Upload and download progress bars
  • Resume interrupted transfers
  • Transfer logs and history
  • File delete and rename support
  • Web or mobile version

Academic Relevance

This project demonstrates practical implementation of Computer Networks concepts using real file transfer operations over a local network.

The application converts theoretical networking concepts into a working desktop-based software system.


Author

Hayato


References

  • Forouzan, B. A. - Data Communications and Networking
  • Kurose, J. F., Ross, K. W. - Computer Networking: A Top-Down Approach
  • Python Documentation
  • PyInstaller Documentation

About

Software to Share Files across Client using server.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages