Homework 4, A Chat System

Short Description:

Do Something

Goals

When you finish this homework, you should have:

Formal Description

Create a chat system. This system should support three different "programs".
  1. A chat server (50%)
  2. A message writer (25%)
  3. A message listener (25%)
The chat server
This program should bind to a port and listen for UDP messages. These messages should be in the following format: I used a vector to maintain the listeners, a map might work, but you need to handle nickname collisions.

The server may be very verbose, (you could add that as a command) and print out each message received and perhaps describe the action.

You may use any anything in the standard library.

While creating your server, you can use netcat as both a listener and a writer. To receive credit, however, you must implement both a listener and a writer.

A message listener
This should bind to a port and continue to run. It should send a join message to the chat server, then receive messages in the "post" format above. It should present the messages, along with the sender (from_nickname) in a nice format. Allow the user to quit the program, and send a remove message when this happens.
A message writer
This program can be continuous or one shot. It should send post messages to the server.

Notes

All communications should be via INET domain sockets using UDP as the protocol.

If you wish you can create an integrated listener and writer.

Your server must compile and run on thought, and your clients must compile and run on memory.

Make sure that you provide instructions for using your clients and server.

You should be able to interact with other student's software.

Required Files

The source code and building instructions for your code in a tar or zip file. You should include documentation if it is needed.

Submission

Submit the assignment to the D2L folder homework 4 by the due date.