CPE 400/600 Computer Communication Networks
Fall 2008
Project
Description:
In this assignment you will build a messaging system similar to Messenger.
Your task is to implement a server and a client program for the messaging system.
The task of the server includes
- to keep track of online clients including their IP addresses,
- to answer client queries that ask for the availability of another client,
- to set up the communication channel between them (only in phase 1), and
- to keep a list of live chat sessions.
The server is assumed to be up and running all the time.
Phase 1: Chat session is set up by server where
client messages are relayed over the server.
All the communication is via TCP.
Phase 2: Clients login and obtain information from the server using UDP.
Then they chat with their buddies directly using UDP.
Bonus: Use multicast groups to send chat messages to buddies in a chat room.
Details:
- This is an individual assignment and you are expected to turn in your own work.
- You can develop your code either in C/C++ or in Java.
CPE 600 students should develop their code in C/C++.
- A client may leave the system with "quit" mesage.
However, there is no node failures,
i.e., a node leaving the system will notify the server before quiting the system.
- A client can join and leave the system multiple times.
- A chat session may include more than two clients.
- You are supposed to do this assignment in UNIX environment.
You can use the UNR UNIX servers:
computeX.cse.unr.edu for developing as well as testing your code.
- Your code will be tested on computeX.cse.unr.edu machines and
if your code does not work on these machines, you will lose points.
- This is an individual homework assignment and we will do our best to catch
any cheating activities, etc.
Code Template
Java version
What to Turn In
You will provide the following thru WebCT:
- Source code of your program
- A makefile to compile your code
- A report explaning the details for your design
Important Dates
- Oct 27, noon:
Due date for the implementation of the first phase of the code and 2-3 pages report.
- Nov 26, noon:
Due date for the implementation of the second phase of the code and
submission of complete project with the required documentation.