{"id":17843781,"url":"https://github.com/mc-cat-tty/python-socket-fileserver","last_synced_at":"2025-06-11T05:04:29.987Z","repository":{"id":156773085,"uuid":"297870130","full_name":"mc-cat-tty/Python-Socket-FileServer","owner":"mc-cat-tty","description":"Python implementation of a custom protocol to send and receive files over the network.","archived":false,"fork":false,"pushed_at":"2020-10-20T10:01:32.000Z","size":118,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T11:37:14.773Z","etag":null,"topics":["async","asyncio","custom-protocol","file-server","file-transfer","multithreaded","multithreading","protocol","protocol-diagrams","python","python-socket-fileserver","select","socket","socket-client","socket-communication","socket-programming","socket-server","socketserver"],"latest_commit_sha":null,"homepage":"","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/mc-cat-tty.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":"2020-09-23T06:08:06.000Z","updated_at":"2024-07-13T16:09:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"59e17a80-cfd3-4612-90f3-99060a999db3","html_url":"https://github.com/mc-cat-tty/Python-Socket-FileServer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mc-cat-tty%2FPython-Socket-FileServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mc-cat-tty%2FPython-Socket-FileServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mc-cat-tty%2FPython-Socket-FileServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mc-cat-tty%2FPython-Socket-FileServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mc-cat-tty","download_url":"https://codeload.github.com/mc-cat-tty/Python-Socket-FileServer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mc-cat-tty%2FPython-Socket-FileServer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259204800,"owners_count":22821159,"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":["async","asyncio","custom-protocol","file-server","file-transfer","multithreaded","multithreading","protocol","protocol-diagrams","python","python-socket-fileserver","select","socket","socket-client","socket-communication","socket-programming","socket-server","socketserver"],"created_at":"2024-10-27T21:26:48.712Z","updated_at":"2025-06-11T05:04:29.969Z","avatar_url":"https://github.com/mc-cat-tty.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Socket FileServer\r\n\r\n\r\nPython implementation of a custom protocol to send and receive files (binary data) over the network.\r\n\r\nFor protocol specification see [protocol diagrams](#protocol-diagrams) and [implementation](/ProtocolImplementation/Protocol.py).\r\n\r\nThis is an application-layer protocol, carried by a TCP connection, that aims to turn a simple socket stream into a reliable way to transfer long files by sending start, end and control bytes, as well as defining and handling different types of error.\r\n\r\nThis multi threading server is able to manage multiple connections.\r\n\r\n## Table of Contents\r\n\r\n* [Usage](#usage)\r\n* [Protocol Diagrams](#protocol-diagrams)\r\n* [Authors](#authors)\r\n\r\n\r\n## Usage\r\n\r\nServer-side:\r\nrun `py server.py`\r\n\r\nClient-side (one or multiple clients):\r\nrun `py client.py`\r\n\r\n## Protocol diagrams\r\n\r\n![ProtocolInputOutput](ProtocolInputOutput.png)\r\n\r\n![ProtocolUploadDownload](ProtocolUploadDownload.png)\r\n\r\n\r\n## Authors\r\n\r\n - Francesco Mecatti - I.T.I.S Enrico Fermi - Italy, Modena\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmc-cat-tty%2Fpython-socket-fileserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmc-cat-tty%2Fpython-socket-fileserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmc-cat-tty%2Fpython-socket-fileserver/lists"}