UNIVERSITY    of    HOUSTON
Department of Computer Science

COSC 4377 - Introduction to Computer Networks
Section 07664
Fall 2001

Term Project - Stream Audio Using Reliable UDP Transmission

Due midnight, Tuesday, November 27, 2001

This term project weights 200 points (or 15 points of your final grade).

The usual note:

Latest Hint:

Overview:

You will write a sender and a receiver program to perform a simplified version of stream audio using UDP. Sender will send an audio file (text format; in simplified ABC musical notation language) to receiver and the received audio file will be saved and later played by an external program (might be converted to midi format before playing).

A typical audio file (in ABC) would look like this.
  % Sample ABC file
  X: 1
  T:Row, Row, Row Your Boat
  M:3/4
  L:1/4
  Q:1/4=300
  C:Trad
  K:C
  C3|C3|C2 D|E3|
  E2 D|E2 F|G3-|G3|
  c c c|G G G|E E E|C C C|
  G2 F|E2 D|C3-|C3||

Audio file should be spilit into smaller segments to be sent over network. Carriage return and vertical bar ('|') will be used as separators. Double bar ('||') denotes end of audio stream. The sample audio file (above) will be split into 24 segments.

Your project is to implement "semi-reliable" transfer of such audio files using UDP between two machines on the network. Each packet contains one segment of audio file. The sender and receiver have "windows" as in other sliding window protocols.


At the end of transmission, receiver will write received audio stream into a file. This output file can be played through other programs (might need to be converted to midi). I
You will design your own header and communication protocol. And you should design your programs as flexiable as possible. All variables can be command line parameters, such as receiver hostname, port number, sending rate, drop packet probability, receiver window size, input/output filename, etc.

After you turn-in your programs, we will schedule a demo.

Submit your assignment:

Reference:

ABC musical notation language and Midi: UNIX Programming: Socket Programming:

Last modified: November 28, 2001.
tihuang at cs . uh . edu