JMU
Programming Assignment 10


1 Summary

The (fictitious) company zmedia has been contacted by a number of libraries (at schools and colleges/universities and in towns/cities) that have requested a site licensing scheme of some kind. In response, they have decided to develop a bookz_server that can "deliver" bookz to any telnet client.

Ultimately, the bookz_server will need to verify that the client request is coming from an IP address associated with a paying customer and use the appropriate collection of bookz. For now, however, those features are not required.

2 Specifications and Other Documents

zmedia has provided you with the following documents.

3 Additional Specifications/Constraints

In addition to conforming to the documents provided by zmedia (and all related course policies), your code must satisfy the following additional specifications/constraints.
  1. To handle multiple requests concurrently, the bookz_server must be multi-threaded. Specifically, each connection must be handled in its own thread.

4 Testing Advice

  1. Start testing using a single machine (and multiple terminal windows) but, ultimately, be sure to test your code using multiple different machines (i.e., with the server on one machine and the clients on other machines).
  2. Start testing using a single client but, ultimately, test multiple simultaneous clients.
  3. Make sure your tests include several simultaneous requests for the same bookz (i.e., make sure your connection handlers don't step on each other if they are serving-up the same bookz).

5 Submission

You must submit all of the files (including the makefile) needed to build the bookz_server.

Copyright 2017