{"id":20652465,"url":"https://github.com/thesofakillers/clientserver-ftp","last_synced_at":"2025-06-11T15:10:31.413Z","repository":{"id":70961821,"uuid":"163246979","full_name":"thesofakillers/ClientServer-FTP","owner":"thesofakillers","description":null,"archived":false,"fork":false,"pushed_at":"2018-12-27T04:58:16.000Z","size":1119,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-07T19:03:32.318Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thesofakillers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-27T04:27:30.000Z","updated_at":"2018-12-27T04:58:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"1ccca42b-79a4-4d6b-8e40-1250ffdce119","html_url":"https://github.com/thesofakillers/ClientServer-FTP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thesofakillers/ClientServer-FTP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2FClientServer-FTP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2FClientServer-FTP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2FClientServer-FTP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2FClientServer-FTP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thesofakillers","download_url":"https://codeload.github.com/thesofakillers/ClientServer-FTP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesofakillers%2FClientServer-FTP/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259288193,"owners_count":22834886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T17:35:05.922Z","updated_at":"2025-06-11T15:10:31.362Z","avatar_url":"https://github.com/thesofakillers.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Client-Server Model FTP\n\nOriginally 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.\n\nThis repository contains an implementation of the [client and server side](https://en.wikipedia.org/wiki/Client%E2%80%93server_model) of a [File Transfer Protocol (FTP)](https://en.wikipedia.org/wiki/File_Transfer_Protocol) application written in Python\n\nThis assignment is a precursor to [this other assignment](https://github.com/thesofakillers/Distributed-File-Server) from the same module.\n\n## Repository structure\n\n```bash\n.\n├── client\n│   └── client.py\n├── README.md\n└── server\n    ├── resources\n    │   ├── LargeFile.mp4\n    │   ├── MediumFile.pdf\n    │   └── SmallFile.txt\n    └── server.py\n```\n\nClient files stored in [./client](client/). Server files stored in [./server/resources](server/resources/).\n\n## Requirements\n\nThe [Python 3.6](https://www.python.org/downloads/release/python-360/) 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.\n\n## Instructions\n\nOpen two terminal windows and change the current directory to [./client](client/) and [./server](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.\n\nThroughout, `server.py` provides some diagnostics about what is going on, while `client.py` also provides instructions.\n\nIn general, the workflow is:\n1. Start `server.py`\n2. Start `client.py`\n3. Type `CONN` into `client.py` to connect to the server\n4. Type one of `UPLD`, `LIST`, `DWLD`, `DELF` or `QUIT` into client.py. Descriptions/Instructions for these are presented when running `client.py`.\n5. Repeat as much as you want until you disconnect from the server by typing `QUIT` into `client.py`.\n6. Type `QUIT` again to close the `client.py` script. You may repeat steps 2-5.\n7. `server.py` continues listening for connections. You can end server.py by typing ctrl+c in linux/MACOS and ctrl+break in Windows.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesofakillers%2Fclientserver-ftp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesofakillers%2Fclientserver-ftp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesofakillers%2Fclientserver-ftp/lists"}