Made a distributed chat system consisting of both a client and a server application. The client application allows communication between client processes. The server application registers clients with a desired username, and keeps track of which clients are online, along with which clients are chatting with each other. The client must know the address of the server (its IP address and port number) in order to establish a connection with it. Once this connection is established, the client is considered online and is registered with the server