$29
CSc/CpE 138 Computer Networks and Internets
Programming Assignment #2 (Socket Programming )
THE FOLLOWING PROBLEM WILL REQUIRE DEMONSTRATION
VIA SCREEN SHOTS.
THE GRADER WILL CHECK FOR ACCURACY. APPROPRIATE
SCREEN SHOTS WILL BE USED FOR DEMONSTRATION.
NOTE: Although the examples discussed in the text are in Python your
submission can be in C or Java if you choose do so with the caveat that
there is more help (see below) if you do it in Python.
Socket Programming Assignment 2: Web Server
Note: This is the second of a series of programming assignments in the text
book that will be assigned in the course of the semester. Students can find
full details of these assignments, as well as important snippets of the Python
code, at the Web site for the text book. http://www.awl.com/kurose-ross.
Assignment 2: Web Server
In this assignment, you will develop a simple Web server in Python that is
capable of processing only one request. Specifically, your Web server will
(i) create a connection socket when contacted by a client (browser); (ii)
receive the HTTP request from this connection; (iii) parse the request to
determine the specific file being requested; (iv) get the requested file from
the server's file system; (v) create an HTTP response message consisting of
the requested file preceded by header lines; and (vi) send the response over
the TCP connection to the requesting browser. If a browser requests a file
that is not present in your server, your server should return a "404 Not
Found" error message.
In the companion Web site, they provide the skeleton code for your server.
Your job is to complete the code, run your server, and then test your server
by sending requests from browsers running on different hosts. If you run
your server on a host that already has a Web server running on it, then you
should use a different port than port 80 for your Web server.
DELIVERABLE REPORT: Objective, Design, Documented code and
actual output of a typical communication between client and web server and
proof that it works.
DEMONSTRATION: This assignment might be demonstrated where we
will test among other things, whether you understand what is going on.
Your grade on this will be based on preparation, understanding, and answers
to questions, including source code.
SUBMISSION: Electronic Submission Only (IN SacCT will file name
according to the format given in the course syllabus)!