https://github.com/safinal/ftp-implementation
File Transfer Protocol implementation with Socket Programming
https://github.com/safinal/ftp-implementation
Last synced: about 1 month ago
JSON representation
File Transfer Protocol implementation with Socket Programming
- Host: GitHub
- URL: https://github.com/safinal/ftp-implementation
- Owner: safinal
- Created: 2022-03-20T11:31:34.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-03-29T12:09:13.000Z (about 3 years ago)
- Last Synced: 2024-11-09T05:33:58.233Z (7 months ago)
- Language: Python
- Size: 328 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- socket-programming - FTP Server
README
# FTP Implementation with Socket Programming
A simple File Transfer Protocol project using Socket Programming in Python implemented by Ali Safinal.
On the client side, there is a Graphic User Interface that provide these functions:
- `ls`: Show List of server files
- `get `: Download `` file from the server
- `put `: Upload `` file to the server
- `quit`: Exit the client program## Requirements
- Python version `3.10.0` or higher.
- PyQt5 version `5.15.6`.
## How to Run
0. Install the requirements
1. Open a Command Prompt/Terminal and change the working directory to the project directory (**don't skip this step**):
```bash
cd ftp-implementation
```
2. Enter the following command:
```bash
pip install -r requirements.txt
```
1. Run the server
1. Open a Command Prompt/Terminal and change the working directory to the project directory (**don't skip this step**):
```bash
cd ftp-implementation
```
2. Enter the following command to run the server:
```bash
# python server.py
python server.py 12345
```
2. Run a client
1. Open another Command Prompt/Terminal and change the working directory to the project directory (**don't skip this step**):
```bash
cd ftp-implementation
```
2. Enter the following command to run a client:
```bash
# python client.py 127.0.0.1
python client.py 127.0.0.1 12345
```
3. **(Optional)** You can repeat step 2 as many times as you want! **This project supports multi-clients feature.**Here is an example photo showing how does the program look like:
