a chat client and server