Simple client-server chat.
Simple chat in java using sockets. The server for managing multiple users uses threads, each thread manages a single user. The client uses two threads, one thread for reading the chat by other users, the other thread is used for writing to the chat. Users are identified by IP address, but this could be improved by allowing them to enter a unique username.