The program implements a simple file-exchange system using the client-server model with the TCP protocol. It uses Java Swing for its simple GUI. The features for the client include the following:
- Connecting to a server with an IP and port
- Registering a unique username in the server
- Sending/uploading any file from a directory
- Fetching available file list from the server
- Requesting/downloading files from the server
- Sending a private message to a user in the server
- Broadcasting a message to all users in the server