Originally made for Durham University's Department of Computer Science's course Networks and Systems under the sub-module Networks, as part of the coursework in 2017/2018.
This repository contains an implementation of the client and server side of a File Transfer Protocol (FTP) application written in Python
This assignment is a precursor to this other assignment from the same module.
.
├── client
│ └── client.py
├── README.md
└── server
├── resources
│ ├── LargeFile.mp4
│ ├── MediumFile.pdf
│ └── SmallFile.txt
└── server.py
Client files stored in ./client. Server files stored in ./server/resources.
The Python 3.6 scripts can be run on Windows or Linux, ensure that Python 3.4+ is installed and defaulted. The modules necessary for the scripts to run are part of the standard Python library so should already be installed.
Open two terminal windows and change the current directory to ./client and ./server respectively. Then in the client window type python client.py
and in the other type python server.py
. This will start the client and server respectively.
Throughout, server.py
provides some diagnostics about what is going on, while client.py
also provides instructions.
In general, the workflow is:
- Start
server.py
- Start
client.py
- Type
CONN
intoclient.py
to connect to the server - Type one of
UPLD
,LIST
,DWLD
,DELF
orQUIT
into client.py. Descriptions/Instructions for these are presented when runningclient.py
. - Repeat as much as you want until you disconnect from the server by typing
QUIT
intoclient.py
. - Type
QUIT
again to close theclient.py
script. You may repeat steps 2-5. server.py
continues listening for connections. You can end server.py by typing ctrl+c in linux/MACOS and ctrl+break in Windows.