Assignment 10 cs494-unp revised: 11/7/99 Assigned: October 26, 1999 Due: December 3, 1999 6:00pm Objective: multicast UDP Points: 25 Description: Develop a multicast terminal chat program that takes as optional arguments a multicast host address and optionally a port number. The program should print the host address and port that it is using. After bind and setsockopt() the program should send a message like using getuid(), getpwuid() and gethostname(). The program should create a child process to continuously read from the socket and write to the terminal, prefacing each received line with the hostname of the sender (e.g.): msr.epm.ornl.gov: hi how are you The parent process should continuously read a line from stdin (gets()) and send it out the socket until the user types ctrl-d. Then the parent process should send a sign-off message, e.g., and kill the child and exit. (Or you can use select() instead of fork(), e.g., modify assignment 5.) You'll probably want to IP_MULTICAST_LOOP enabled (the default, I think), so multiple copies running on the same machine will hear each other (and themselves). This application will have to be built and tested on multicast-capable machines, e.g. any of Solaris critters. Be certain the IP_MULTICAST_TTL socket option is 1. For the default host address and port use: #define HADDR "224.7.8.9" #define PORT 7654 that way, we can all "chat" together .... Finally, from deneb or altair, use tcpdump (with -x and whatever) to capture one of your multicast packets. Include the tcpdump output in results file. Your submitted output should demonstrate that you tested your program with at least three clients in the chat session. Optional: please indicate amount of time required to complete assignment. Use ~dunigan/cs494-unp/494submit to submit your source files and output. See http://www.cs.utk.edu/~dunigan/cs494-unp/policy.txt