Two way communication between client and a server that supports multiple simultaneous clients, written in C++.
The development in done in phases, from unilateral single connection to simultaneous clients and bilateral exchanges.
A simple file transfer protocol using TCP sockets, with bandwidth limiting (still pretty fast though).
Simple file transfer from server to client. Supports transfer of a single file, after which the connection closes.
The client can communicate the name of the file requested from the server. Multiple clients can connect to the server, albeit one by one (not simultaneously).
Supports simultaneous clients, wthout employing multiple threads. Polls all connectiion effectively and manages communication via single thread.
Truly bilateral file transfer, server and client can exchange file names and data in either direction. Supports simultaneity without using multiple threads (so scales well).