School assignment n. 2 from course Computer and Communication Networks in third bachelor semester.
Main criteria:
- Program draft and communication protocol design.
- Implementation exam; added functionality to count all packets and negative received replies from server.
- Client setup; user sets target IP address, target port, source port and maximum value of fragmentation
- Server setup; user sets source port and existing directory to store received files.
- Client interface via console; user can choose to end program, send text message, send file or change to a server.
- Server interface via console; user can choose to end program, receive data from client or change to a client.
- File transfer.
- Simulation of file transfer error; error detection via CRC and Stop & Wait ARQ method.
- Timeout, if connection not established.
- Documentation.
Launch main.py via terminal with python3 and with argument client to run client part or server to run server part.