PROJECT NEWS

CMSC 417 (section 0201, f97)

You do not need to link -lnsl on Alpha

  • The C library (/usr/lib/libc.a) that is automatically included in a link request contains the network related libraries.
  • How to submit projects

  • Tar all source code files, Makefile and typescript file (no object or executables):
  • Submit it using the submit program residing in ~aus02: The general form is
  • Use lowercase letters for the command line request type

  • Please write your programs to use lowercase letters for the command line request type argument as lowercase letters is what I will be using to test your program.
    Example: client host addr somewhere.cs.umd.edu
    (NOT client host ADDR somewhere.cs.umd.edu)
  • A small correction to Socket Handout

  • near line 48: memset((void *) &server, sizeof server) should have a second argument of zero.
  • Socket debugging tools

  • There isn't much available on Unix other than netstat.
  • Examine the exit codes of all your system calls (bind, unbind, etc). These are very helpful at diagnostics.
  • A common mistake is to apply a host-to-net (or net-to-host) conversion on a "anyhost" address (as in receivefrom any host). This converts the "anyhost" address to a specific host address.
  • Port numbers

  • If your account is ausN, then use ports in the range 5000+10*N to 5000+10*(N+1)-1 for your socket binding. (Of course, port numbers chosen by the system may not be in this range.)
  • Class newsgroup

  • Newsgroup csd.cmsc417 is available for both sections of CMSC 417. Currently accessible from aitsAlpha cluster, csd, and glue.
  • Port numbers

  • If your account is ausN, then use ports in the range 5000+10*N to 5000+10*(N+1)-1 for your socket binding. (Of course, port numbers chosen by the system may not be in this range.)
  • You should use g++ to compile

  • Even if you programmed in C, you should use g++ to compile your project 2 or you will likely get an error in /usr/include/c_asm.h
  • READ THIS: Format for submission of project 2

  • The Tar file you submit should only have the following files (with exactly these names):
    [m|M]akefile
    queue.h
    queue.[c|C]
    driver.[c|C]
    typescript
    README

    The Tar file should not be a tarred directory with the files inside it. Nothing (error messages,extraneous info) should be printed out in queue.c Make sure to use the -Wall option (the comment in the header file will not be counted against you).
    Points will be deducted if you do not follow these guidelines.

  • Project 2 information

  • You will need to link in the pthreads libarary. To do this, add "-lpthread" to the end of your (g++) compile line.
    The manual page on the pthread_cond_timedwait() function is particularly helpful--read it.
    You should use the function pthread_get_expiration_np() to convert the time passed as a parameter in your dequeue function into a time understandable by the pthread_cond_timedwait() function.
  • Acceptable warnings for Project 2

    Some clarifications for Term Project

    How do I get a 53 byte packet?

    Term Project Schedule for Section 0201