https://github.com/mc-cat-tty/python-socket-fileserver
Python implementation of a custom protocol to send and receive files over the network.
https://github.com/mc-cat-tty/python-socket-fileserver
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
Last synced: 2 months ago
JSON representation
Python implementation of a custom protocol to send and receive files over the network.
- Host: GitHub
- URL: https://github.com/mc-cat-tty/python-socket-fileserver
- Owner: mc-cat-tty
- Created: 2020-09-23T06:08:06.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-10-20T10:01:32.000Z (over 4 years ago)
- Last Synced: 2025-03-17T15:21:57.121Z (2 months ago)
- 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
- Language: Python
- Homepage:
- Size: 115 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Python Socket FileServer
Python implementation of a custom protocol to send and receive files (binary data) over the network.
For protocol specification see [protocol diagrams](#protocol-diagrams) and [implementation](/ProtocolImplementation/Protocol.py).
This 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.
This multi threading server is able to manage multiple connections.
## Table of Contents
* [Usage](#usage)
* [Protocol Diagrams](#protocol-diagrams)
* [Authors](#authors)## Usage
Server-side:
run `py server.py`Client-side (one or multiple clients):
run `py client.py`## Protocol diagrams


## Authors
- Francesco Mecatti - I.T.I.S Enrico Fermi - Italy, Modena