Home Announcements Schedule Assignments Project Reading Reviews Resources

Project: libmicrohttpd

Description and Project Goals

In this project, you will learn about socket programming through the development of a simple web client that will drive the testing of a web server library, called libmicrohttpd. The project will be written using C/C++ sockets. The goals of the project are:

Getting Started

For this project you will need to use subversion to download the project files, to store your project, and to protect yourself! Version control systems are vital for large engineering projects and when working with groups. They also allow you to work from multiple places, such as in a lab or at home and merge those changes.

Using Subversion

  1. Install subversion if you do not have it on the machine you are working on.
  2. Visit https://svn.cs.du.edu and follow the instructions to get an account created.
  3. If you followed the previous instruction, then your initial checkout will create a directory with your user name. Switch into this directory and grab the tar/bzip2'ed libmicrohttpd files from http://www.cs.du.edu/comp3621/files/libmicrohttpd.tar.bz2.
  4. Unbzip and untar the files using the following command:
    tar -jxvf libmicrohttpd.tar.bz2
    This will create the libmicrohttpd file in your user directory.
  5. Perform an initial commit of libmicrohttpd:
    svn add libmicrohttpd
    svn commit -m "initial commit"
    Now, anytime you need to know the status of which files need to be committed and which need to be added, just type:
    svn status
You can checkout your user directory on any machine and work from there. Just make sure you commit all your changes when you are done. As a general rule, you should commit files after you've changed them or added things so that subversion can keep a log of your changes and you can rollback if necessary. A backup will also be kept of the repository.

Initial Build

You initially need to run the following commands to build the project:
  1. ./bootstrap : this creates the configuration file you need to configure the project
  2. ./configure : this creates the Makefiles to build your project
  3. make : this compiles your project.
Your project lives under the src directory. The main header files is under src/include and your main source is under src/daemon. You'll be modifying the files under daemon to write this project.

Undergraduates: How to Proceed

The header file, microhttpd.h, has documentation explaining the purpose of the functions of the library. The project will be completed over three checkpoints:

Graduates: How to Proceed