This is a simple chat developped in Java following a client-server architecture. The client and the server are two separate programs, the server being command-line-only while the client has a simple GUI created with Java Swing. The server and the client communicate using an original protocol.
SimpleChatUDP is an alternate version of this project that uses UDP sockets instead of TCP.