Networking Project
Project
Overview: Understand TCP socket programing 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 a group project with up to two students per group.
The client should be designed to start by typing the command: myftp server-name 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: Command Function myftp> ls List the files in the current directory of the
remote server. myftp> get remote-file Download the file named “remote-file” from
the remote server to the local machine with the same file name.
myftp> put local-file Upload the file named “local-file” from the local machine to the remote server with the same file name.
myftp> delete remote-file Delete the file named “remote-file” from the remote server.
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 inet.cis.fiu.edu (user name: demo, password: demopass) or FileZilla server (https://filezilla-‐project.org/download.php?type=server) running on a Windows machine.
References: Basic FTP Commands, http://www.cs.colostate.edu/helpdocs/ftp.html FTP RFC, http://www.ietf.org/rfc/rfc959.txt
Submission Guide: Submit a readme.txt file and the source code file. Please include the following information in the readme.txt file.
Student name and ID: xxx Operating system: Windows/Linux Programing language: Python/Java/C++/C Compiling instructions: xxx Running instructions: xxx
The code must be well-‐documented. The grader will test your 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.
Grading Criteria: Item Percentage login 15% ls 15% get 20% put 20% delete 15% quit 15%
Plagiarism will be reported to the graduate school for academic dishonesty.