CSE 489/589 Programming Project # 1, Version 0.8
Fall 2010

Worth 100 points. There might be slight changes to this file in the next 7 days as inevitably bugs and typos are reported. The final version will be version 1.0. (Look, google only releases their betas and you use their softwares daily. Moreover, if you're a software developer, you'll notice that users don't really know precisely what their software requirements are.)

Due on Sunday, Oct 11 at 23:59 (midnight!)

The deadline is hard. There will not be any extension. Any submission after 23:59 of Oct 11 will not be graded (i.e. you'll get 0 points for this assignment in that case). There's more than a month to do this. No excuse, please. You should try to complete this project at least a week before the deadline.

1. Overview

By implementing the program specified in this assignment, you will get familiar with the Unix network programming API (specifically, the Berkeley socket API). The assignment is to be done in groups of size at most 2. You are responsible for finding your partner (if you need one), for finishing off the assignment in case your partner drops the class or backs out from completing the assignment for whatever reason. Please carefully read the sample codes I've given, and re-use some of the subroutines and code structures from the examples. Doing so is not absolutely required, but it will likely save you a lot of time.

The program is to be written in C under a Unix platform such as Linux, SunOS, Solaris, Mac OS X, or FreeBSD. Please make sure that:

The program to be written is called chatty (or your favourite name), whose features are described below. Note that there is only one program to be written. Many students in the past tried to write a 'client' and a 'server', for unknown reasons!

2. The commands

Below is a description of all commands chatty is supposed to handle, along with the description of associated actions:

3. Message formats

4. Other requirements