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
- 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
| Technology | Purpose |
|---|---|
| Python | Core Programming Language |
| HTTP | Application Layer Communication |
| TCP/IP | Reliable Network Communication |
| PyInstaller | EXE File Generation |
| GUI Framework | Desktop User Interface |
- Python 3.10 or higher
- Windows Operating System
- Local Network Connection
The application follows a client-server model.
- Hosts a shared folder
- Starts a local server on a specific IP address and port
- Handles upload and download requests
- Connects to the server using IP address and port
- Uploads files
- Downloads files
- Refreshes available file list
Open Command Prompt on the server computer and type:
ipconfigLook for the IPv4 Address.
Example:
IPv4 Address. . . . . . . . . . : 192.168.1.5
Copy this IP address.
- Open NetShare
- Go to the Server section
- Select a shared folder
- Start the server
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.
- Select a file from Windows
- Click Upload
- The file will be transferred to the shared folder on the server system
- Refresh the file list
- Select any available file
- Click Download
- Choose destination folder
The selected file will be downloaded successfully.
HTTP protocol is used for communication between systems.
TCP provides:
- Reliable data transfer
- Ordered delivery
- Error checking
- Retransmission support
IP addressing is used to identify communicating systems.
Using :contentReference[oaicite:0]{index=0}:
pyinstaller --onefile netshare.pyThe executable file will be generated inside the dist folder.
This step is used to find the IPv4 address of the server system.
- 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
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.
Hayato
- Forouzan, B. A. - Data Communications and Networking
- Kurose, J. F., Ross, K. W. - Computer Networking: A Top-Down Approach
- Python Documentation
- PyInstaller Documentation



