Java implementation of a multi-threaded chat server and swing client