100%(1)1 out of 1 people found this document helpful
This preview shows page 7 - 9 out of 13 pages.
Note the following additional requirements/explanations:The name of the client executable program must bemyftp. The name of the serverexecutable program must bemyftpd.To avoid potential conflict in the use of the server's ``well known'' port number whenseveral students use the ceto server, you should use the TCP port allocated to you asthe default server listening port.Tests should show the cases where both the client and the server are on the samemachine as well as on different machines (you may want to use ceto.murdoch.edu.au todo the testing, howeveryou must kill your server at the end of the test). They shouldalso show that more than one client can obtain the service at the same time. You mayuse the commandscriptto record the terminal I/O. When debugging your networkprogram on a standalone machine (e.g., on your home Linux), you may uselocalhostas the ``remote'' host name.Tests should show that the program can transfer not only small files (e.g., 0, 10 and 100bytes) but also large files (at least several mega bytes), and not only text files but alsobinary files. In addition, you must show that the transferred file and the original file areidentical not only in their sizes but also in their contents (usediffcommand).The specification of the protocol is an important part of this question. Please provide afull specification of the protocol in a section separated from the client and serverimplementations. You should complete this specification before starting theimplementation of the client and server programs.Please note that the server must be implemented as a daemon and must log all of itsinteractions with the clients.Project 3: A Simple HTTP Client and a Simple HTTP Server (Back to Beginning)This project involves an independent study of an existing protocol named HTTP (HyperTextTransfer Protocol), version 1.1, and then design and implement a simple HTTP client that is
3/5/2017ICT374 Major Assignment Two8/13able to communicate withanyHTTP server, and design and implement a simple HTTP serverthat is able to provide simple services requested byanyHTTP client.Please note that a thorough understanding of the HTTP protocol is an important part of thisproject. Unless you are confident that you are able to gain a thorough understanding of theprotocol, you should not select this project as your assignment.This project has three components:1. An essay of at least three pages long, explaining your understanding of the HTTPprotocol. The essay should provide details of the protocol that are relevant to the project.2. Design and implementation of an HTTP client program using C, see the detailedrequirements below.