simultaneously. For simplicity, do not consider any authentication process in this project, hence the server will provide its service to any client with the right site address and port number.
To simplify project marking, please name your server program myftpd with the following command line syntax (here the letter d in myftpd stands for daemon, since the server should run as a daemon process: myftpd [ initial_current_directory ] The server process maintains a current directory. Its initial value should be the one inherited from its parent process unless the optional initial_current_directory is given. In the latter case, the user supplied path should be used to set the initial current directory of the server. This can be done using the function chdir. A client can use the cd command to change the (child) server's current directory later. The client program should be named myftp with the following command line syntax: myftp [ hostname | IP_address ] where the optional hostname ( IP_address ) is the name (address) of the remote host that provides the myftp service. If the hostname or IP_address is omitted, the local host is assumed. After the connection between the client and the server is established, the client should display a prompt > and wait for one of the following commands: pwd - to display the current directory of the server that is serving the client; lpwd - to display the current directory of the client; dir - to display the file names under the current directory of the server that is serving the client; ldir - to display the file names under the current directory of the client; cd directory_pathname - to change the current directory of the server that is serving the client; Must support "." and ".." notations. lcd directory_pathname - to change the current directory of the client; Must support "." and ".." notations. get filename - to download the named file from the current directory of the remote server and save it in the current directory of the client; put filename - to upload the named file from the current directory of the client to the current directory of the remove server. quit - to terminate the myftp session.
The myftp client should repeatedly display the prompt and wait for a command until the quit command is entered. This project consists of three components: 1. Protocol Specification: You must specify a protocol for communication between the myftp client and the myftp server. This protocol will become the sole reference to which the client program and the server program can be separately implemented. This means that, by referring to the protocol, the client and server can be implemented independent of each other. The design and implementation of the client (server) should not depend on (1) what strategy and algorithms were used to implement the server (client), (2) what programming language were used to implement the server (client), and (3) what operating system the server (client) is running on. The protocol must be complete, i.e., it contains all the necessary information required by both parties to
You've reached the end of your free preview.
Want to read all 16 pages?
- One '14