This is my implementation of the FTP protocol. In this project I decided to implement FTP service and FTP client which will be connected to the service. The whole communication between them is based on the low-level TCP sockets.
But what if a lot of clients will be connected to the server at the same time? One of the solution is to create one thread for one client. Fine, but what if we will have thousands of clients? Then we will have thousands of threads too and this is not a good idea when we want to optimize our program. So I decided to use asyncio library and implement asynchronous FTP server + client. Everything will be on the single thread even if we will have to handle thousands of connects.
Only one account will allow you to connect to the server. This account is anonymous.