This implements a simple messaging server, allowing serveral users to connect and interact with each other. The messages are sent using serializable java objects, and the client can take arbitrary message types received from the server object, using some Java runtime reflection.