Understand TCP socket programming by developing a simplified FTP client that works in the active mode. You must create your own socket, and cannot use any existing FTP library. You may use Python, Java, or C++/C as the programming language. This is an independent project.
The client should be designed to start by typing the command:
where “server-name” is the name or IP address of the server. Next, display a prompt for entering the FTP user name, followed by a prompt for entering the password.
After a successful login, the following commands should be available in the FTP client prompt:
1. myftp> ls: List the files in the current directory of the remote server.
2. myftp> get remote-file : Download the file named “remote-file” from the remote server to the local machine with the same file name.
3. myftp> put local-file : Upload the file named “local-file” from the local machine to the remote server with the same file name.
4. myftp> delete remote-file: Delete the file named “remote-file” from the remote server.
5. myftp> quit: Quit the FTP client.
All the above commands (including entering the user name and password) when executed should return a Success/Failure status. All the path names and file names should be considered relative to the current directory (unless absolute path name is given). After a successful file transfer, a success message should be displayed with the number of bytes transferred. Remember that the FTP client should work in the active mode.
Please run the Windows/Linux/MacOS built-in command line FTP client to see the expected result of each command. You may test your client by connecting it to any standard FTP server, such as: localhost or server (user name:xxx , password:xxx) or FileZilla server ([url removed, login to view]) running on a Windows machine.
Basic FTP Commands, [url removed, login to view] FTP RFC, [url removed, login to view]
Submit a [url removed, login to view] file and the source code file. Please include the following information in the [url removed, login to view] file.
Operating system: Windows/Linux Programing language: Python/Java/C++/C Compiling instructions: xxx
Running instructions: xxx
The code must be well-documented. code with a standard FTP server. The grader will use Windows and Linux-based platforms for testing. In case of problems or if you use an uncommon platform, you may need to bring your own computer and demonstrate the code.