Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 2.23 KB

README.md

File metadata and controls

43 lines (31 loc) · 2.23 KB

Client-Server Model FTP

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.

Repository structure

.
├── 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.

Requirements

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.

Instructions

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:

  1. Start server.py
  2. Start client.py
  3. Type CONN into client.py to connect to the server
  4. Type one of UPLD, LIST, DWLD, DELF or QUIT into client.py. Descriptions/Instructions for these are presented when running client.py.
  5. Repeat as much as you want until you disconnect from the server by typing QUIT into client.py.
  6. Type QUIT again to close the client.py script. You may repeat steps 2-5.
  7. server.py continues listening for connections. You can end server.py by typing ctrl+c in linux/MACOS and ctrl+break in Windows.