Samples

MafiaNet includes 80+ sample applications demonstrating various features.

Building Samples

cd build
cmake -DMAFIANET_BUILD_SAMPLES=ON ..
cmake --build .

Sample applications are built in build/Samples/.

Beginner Samples

Ping

Samples/Ping/

Basic UDP ping demonstration. Shows:

  • Starting RakPeerInterface

  • Sending/receiving ping packets

  • Basic packet handling

./Samples/Ping/Ping

Chat Example

Samples/ChatExample/

Simple chat client and server. Shows:

  • Client-server architecture

  • Custom message types

  • Broadcasting messages

# Terminal 1
./Samples/ChatExample/ChatExampleServer

# Terminal 2+
./Samples/ChatExample/ChatExampleClient

Intermediate Samples

ReplicaManager3

Samples/ReplicaManager3/

Object replication system. Shows:

  • Automatic object synchronization

  • Serialization/deserialization

  • Object creation and destruction

FileListTransfer

Samples/FileListTransfer/

File transfer with delta compression. Shows:

  • Sending multiple files

  • Progress callbacks

  • Bandwidth management

FullyConnectedMesh

Samples/FullyConnectedMesh/ and Samples/FCMHost/

Peer-to-peer mesh networking. Shows:

  • Automatic mesh formation

  • Host migration

  • Verified connections

RPC4

Samples/RPC4/

Remote procedure calls. Shows:

  • Registering functions

  • Calling remote functions

  • Parameter passing

Advanced Samples

NAT Complete Server/Client

Samples/NATCompleteServer/ and Samples/NATCompleteClient/

Full NAT traversal demonstration. Shows:

  • NAT type detection

  • NAT punchthrough

  • UPnP fallback

  • Router2 relay

Autopatcher

Samples/AutopatcherServer/ and Samples/AutopatcherClient/

Delta patching system. Shows:

  • Creating patches

  • Applying patches

  • Version management

Cloud Computing

Samples/CloudServer/ and Samples/CloudClient/

Distributed server architecture. Shows:

  • Server-to-server communication

  • Load balancing concepts

  • Scalability patterns

TeamManager

Samples/TeamManager/

Team management for games. Shows:

  • Creating teams

  • Joining/leaving teams

  • Team balancing

Utility Samples

PacketLogger

Samples/PacketLogger/

Network traffic logging. Shows:

  • Logging all packets

  • Custom log formatting

  • Debug output

ComprehensiveTest

Samples/ComprehensiveTest/

Stress testing. Shows:

  • Multiple connections

  • High packet rates

  • Connection stability

Tests

Samples/Tests/

Unit and integration tests:

./Samples/Tests/Tests                    # Run all tests
./Samples/Tests/Tests EightPeerTest      # Run specific test

Sample Directory Structure

Each sample typically contains:

Samples/SampleName/
├── CMakeLists.txt      # Build configuration
├── main.cpp            # Main source (or SampleName.cpp)
└── README.md           # Sample description (if present)

Running Samples

Most samples are interactive console applications:

  1. Build with MAFIANET_BUILD_SAMPLES=ON

  2. Navigate to build/Samples/SampleName/

  3. Run the executable

  4. Follow on-screen prompts

Many samples require running multiple instances (server + clients) in separate terminals.

See Also