C++代写|CSCI 460 Project 2: File Transfer Protocol (FTP) Server Software Application

本次加拿大C++代写是一个运用C++网络与通信相关的assignment

Objectives

  1. To learn how a computer network protocol is documented in a Request for Comments (RFC) by
    Internet Engineering Taskforce (IETF) as an Internet Standard.
  2. To understand File Transfer Protocol (FTP) from RFC 959.
  3. To learn and use Unix Network or Socket programming API.
  4. To implement FTP Server software according to Internet Standard outlined in RFC 959.
  5. To implement FPT Server software using C++ programming language and Unix Network or
    Socket programming API.

Specifications

You have been using File Transfer Protocol (FTP) to get or to store files from or to FTP servers.
You use a FTP Client software application in your host computer to communicate with an FTP
server. FTP server runs a FTP Server software application. In this project, you are going to
implement your own FTP Server software application in C++ programming language using Unix
Network or Socket programming API.

FTP is a client-server protocol to transfer files to/from the servers. An FTP client sends FTP
request messages to an FTP server. FTP server interprets the request message, takes appropriate
action, and sends back response message to the client. RFC 959 describes FTP and its request
and response messages in detail. You need to read and understand RFC 959 to complete this
project. Although, RFC 959 describes many request messages, you need to implement only the
followings:

  • USER
  • PASS
  • PWD
  • CWD
  • CDUP
  • PASV
  • NLST
  • RETR
  • QUIT

Your FTP Server software must be compatible with the FTP Client software of your first project,
which has a command-line user interface (UI) and the users can enter following user commands
through that interface

  • help
  • user <username>
  • pass <password>
  • pwd
  • dir
  • cwd <dirname>
  • cdup
  • get <filename>
  • quit

Some of the user commands have an argument. For example, command user has an
argument <username>. A user command and its argument is always space separated.

– Command ‘help’ displays the list of commands supported by FTP client software application,
their syntax, and meaning.

– Command ‘user’ sends username to the FTP server for authentication. You need to support
only one user with user name ‘csci460’ and password ‘460pass’.

– Command ‘pass’ sends the password to the FTP server for authentication.

– Command ‘pwd’ prints the current working directory of the FTP server.

– Command ‘dir’ lists the contents of the current working directory of the FTP server.

– Command ‘cwd’ changes the current working directory to another directory specified in the
argument. If the specified directory is beyond current working directory of FTP server, an
error is reported by the server.

– Command ‘cdup’ changes the current working directory to its parent directory. If the parent
directory is beyond server’s base directory, an error is reported by the server.

– Command ‘get’ fetches the specified file from the current working directory of FTP server. If
the specified file is not available an error is reported by the server.

– Command ‘quit’ informs FTP server that the client application is quitting, so that the server
can close the connection gracefully. It also closes the client connection gracefully and
terminates the software.