UMD Logo

Project Notes - CMSC 417, Spring 2000, Section 0101

Below are additional notes for all class projects. You must also follow the submission guidelines for all projects.
Project 1
These requirements are in addition to those listed in the project 1 handout.

  • Name the header file p1.h.
  • Your Makefile should generate one executable, client.
  • Compile with make CC=gcc CFLAGS=-Wall
  • You may need LDFLAGS="-l socket -l nsl" to get gethostbyname(3N) to work on Solaris/Sys V
  • Be careful about the difference between host byte order and network byte order; be sure you know the meaning of htonl(3) and friends (htons(3), ntohl(3), and ntohs(3)) and use them in the appropriate places. The routines described in inet(3) are very helpful for debugging output.
  • Integer sizes are an issue on the class Alpha machines. The exact size of the various integer types (short, int, long, long long) can vary among different platforms, because the C specification purposely left it unspecified. For example, on Sparc and Alpha machines we see an important difference. The size of a long is not the same. The network routines ntohl(3) etc. mean a long to be 32-bits. Thus you should not be passing Alpha longs to these routines.

    PlatformByte Ordersizeof() in bytes
    short intintlong intlong long int
    SparcBig Endian 2448
    AlphaLittle Endian 2488

  • Acceptable Warnings: warnings not caused explicitly by your code will not usually affect your grade. The following allowed warnings may appear when compiling/linking your project ...
        /bin/ld: Warning: clog defined as GLOBAL DATA but is
                 defined in a shared lib as a GLOBAL FUNC
    When using g++ and iostream.h, /usr/local/lib/libstdc++.a is automatically linked into your code. This contains a definition clog that conflicts with the declaration in the standard header files.

Project 3
These requirements are in addition to those listed in the project 3 handout.

  • The README file is required. Your README file should describe how complete your client and server are. This will help us understand your programs and help you earn the credit you deserve.

  • The use of "typescript" is highly recommended (see project submission guidelines for details). Also, your client and server should generate all necessary messages to stdout when reacting to events (sending/receiving packets, error detecting, etc.)


[Last updated Wed Feb 23 2000]    [Please see copyright regarding copying.]