A prerequisite for all the programs above is the fact that all the PCs involved, both the server and the client should be connected to the same WiFi network and the IP address of the server should be entered and changed in the code. We have also included the screenshots as well as the packet captures using WireShark which is a very popular packet sniffing software through which the packets can be analysed and request made by the client or the server can be seen.
We have used socket programming to transfer messages on the command prompt from the client to the server and then the server replies with the same message.
We have used FileZilla which is a very popular FTP client available for free (download here) and for the server we made use of Universal FTP server which is available for free from the Microsoft Store (download here). We connected the 2, transferred the files and captured the packets so that they can be compared to the FTP implementation using Python.
On the server side we have made use of pyftpdlib (more info here) and for the client we have used ftplib (more info here). The server supports multithreading as well, as in multiple clients can log in at the same time and access the server.
We have made use of Socket Programming, but before that we have read the text files, transferred the contents as message and again stored it as a text file on the client side.
In all the cases above, the server should be running before the client, this is very important.