Skip to content

cgmarquess/AIM-Client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English Português

AIM Client - TOC2 Protocol Implementation

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.

Technical Highlights

  • Low-Level Networking: Engineered the TCP/IP communication layer using raw java.net.Socket and 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.

Features

  • 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.

Tech Stack

  • Java 21
  • JUnit 5
  • Java Sockets (java.net)
  • Maven

How to Run

  1. Clone the repository:
git clone https://github.com/cgmarquess/aim-client.git
  1. Navigate to the project directory:
cd aim-client
  1. Run tests to validate the protocol logic:
mvn test
  1. Run the application:
mvn exec:java

Developed by [Gabriel Marques] - [LinkedIn]

About

Java implementation of the AOL TOC2 protocol based on reverse engineering. Features low-level TCP/IP networking with raw Sockets, binary framing (SFLAP), and strict JUnit testing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages