This is a repository for a university project on the "Network Programming" module.
This application provides a streaming files between two clients through the server unit. Every exchange can be established between two clients in one moment. After termination client can request the server unit to establish exchange with another client than before. Project is implemented in Python 3.8. Implementation is based on SCTP protocol. Connection between clients is set by server. Server is required to establish connection. Every client is recognized by unique ID set by server.
To install requirements dependencies:
pip3 install -r requirements.txt
To run the server:
sudo python3 Server.py
To run client GUI:
python3 gui_main.py
The server is running in the daemon process. When a client connects to the server, he is granted a unique ID and two threads – one for the receiver module, and one for sender module.
When in UI, one can provide valid server IP manually, or when leaving the field blank and hitting "Connect", a multicast protocol is used to search for a running server in the local network.
After picking a file to send and the destination user ID, "send file" button, the server sets up a connection between them and then the file is being sent.
The server is collecting logs when performing a various actions and saves them to:
- /var/log/stream_server.log – general logger file
- /var/log/stream_server_stdout.log –standard output stream
- /var/log/stream_server_stderr.log – standard error stream
Demo display
- Jakub Burghardt davex98
- Kamil Kaliś kamkali
- Piotr Kuglin lothar1998