CS779/879

Assignment #4

Due Midnight, Wednesday April 18, 2012


Implement the following two programs:

NAME

YouChatS  -  Universal Chat Server

YouChatC  - Universal Chat Client



SYNOPSIS

YouChatS   <multicast-address>   <port>

YouChatC  <type>     <address>   <port>

          where <type>  is an element of the following set:  { t4, t6, s4, s6, q4, q6, m4, m6, ux}

 

DESCRIPTION

 

ê YouChatS:

 

        This is an extended implementation of assignment 1.

        

The program creates three  IPV6 sockets  bindend  to <port>.

 

1.     UDP socket  joining  the <multicast-address>

2.     TCP socket

3.     SCTP socket

 

         In addition, the program creates a UNIX socket binded to file :  /tmp/<port>

       

         You have the choice of implementing your program using either:

Select, Threads or Forks/Shared Memory.

 

Example:

 

% YouChatS   224.0.0.1   10111

 

ê YouChatC:

 

The program is a typical chat client:

accepts user input,

sends it to the server,

receives messages from the server and

displays it to the user.

 

The program behaves according to the type option:

 

t4 : TCP IPV4

t6 : TCP IPV6

s4 : SCTP STREAM IPV4

s6 : SCTP STREAM IPV6

q4 : SCTP SEQPACKET IPV4

q6 : SCTP SEQPACKET IPV6

m4 : mcast IPV4

m6 : mcast IPV6

ux : Unix stream socket using file /tmp/<port>

 

Examples:

 

% YouChatC    m4      224.0.0.1             10111

% YouChatC    m6      ::ffff:224.0.0.1      10111

% YouChatC    ux       127.0.0.1             10111

% YouChatC    t6        ::1                       10111

% YouChatC    q4       127.0.0.1             10111

 

 

You may test my implementations at:

http://www.cs.odu.edu/~cs779/spring12/assignments/a4/wahab/