A simple chat client which transmits user text messages entered at the keyboard to a multicast address and also can simultaneously receive messages sent from other clients on other machines sent to the same multicast address.
Implemented transmitter code and the listener code as separate threads so that live messages from other sources may be received and displayed while the user is also typing a new message to be sent.