lothar1998 / Streaming-Files-Exchange

Streaming Files Exchange - Academic Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Streaming Files Exchange

GitHub GitHub GitHub GitHub

GitHub GitHub

This is a repository for a university project on the "Network Programming" module.

Description

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.

How to run?

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

Features

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 choosing a file to send, typing in a destination user ID and pressing "Send File" button, the server sets up a connection 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

ui2

Demo display

Authors

About

Streaming Files Exchange - Academic Project

License:MIT License


Languages

Language:Python 100.0%