A chat client implementation based on the reverse engineering of AOL's legacy TOC2 protocol.
This project focuses on studying low-level networking, binary data handling, and modernizing legacy codebases.
- Low-Level Networking: Engineered the TCP/IP communication layer using raw
java.net.Socketand I/O Streams, bypassing high-level frameworks to demonstrate granular control over data packets. - Binary & Text Protocol: Manually handled binary framing (SFLAP) and text-based command parsing from the legacy protocol.
- Clean Architecture: Refactored legacy patterns (Java 1.4 era) into modern Java 21 standards, strictly separating Connection, Messaging, and UI layers.
- Concurrency: Utilized Threads and Lambdas for asynchronous message processing.
- Automated Testing: Built a comprehensive JUnit 5 test suite covering proprietary encryption ("roasting"), packet framing, and command parsing.
- Secure Login: Implementation of the proprietary "Roasting" password encryption algorithm.
- Instant Messaging: Sending and receiving Direct Messages (IM).
- Social Features: Chat Room management and Buddy List synchronization.
- Java 21
- JUnit 5
- Java Sockets (java.net)
- Maven
- Clone the repository:
git clone https://github.com/cgmarquess/aim-client.git- Navigate to the project directory:
cd aim-client- Run tests to validate the protocol logic:
mvn test- Run the application:
mvn exec:javaDeveloped by [Gabriel Marques] - [LinkedIn]