Development repository for the 42cursus' Minitalk project
For more about 1337 Coding School and its projects, feel free to connect with me on LinkedIn.
✅ I achieved a perfect score of 125/100 on this project! 🎯
Minitalk is a project that explores inter-process communication (IPC) using UNIX signals. The goal is to create a simple messaging system where one process (the client) sends a message to another process (the server) using SIGUSR1
and SIGUSR2
signals.
- Signals: Minitalk uses
SIGUSR1
andSIGUSR2
to encode and transmit data. - Bitwise Operations: Each character of the message is sent bit by bit using signals.
- Signal Handling: The server catches and decodes signals to reconstruct the original message.
- Real-time Communication: Ensuring signals are processed in the correct order without loss.
To compile the project, use:
make
This will generate two executables:
server
client
To compile both the mandatory and bonus parts:
make bonus
To clean up object files:
make clean
To remove executables and object files:
make fclean
To recompile everything from scratch:
make re
Start the server first:
./server
The server will print its PID (Process ID), which you’ll need for the client.
Use the client to send a message to the server, replacing <PID>
with the server’s actual PID:
./client <PID> "Hello, World!"
The server will receive and print the message.
The bonus version includes:
- Unicode Character Support
- Message Acknowledgment from Server to Client
- Handling Very Large Messages
To test the bonus part, run:
./server_bonus
./client_bonus <PID> "This is the bonus part! 🚀"
📚 Documentation & References
🛠 Technical Articles & Guides
Happy coding! 🚀