Minitalk is a project developed as part of the 42 curriculum. It aims to implement a simple client-server communication system using the concept of signals in Unix-like operating systems. The project focuses on establishing a reliable and efficient data transfer mechanism between the client and server processes.
The main challenge in Minitalk is to implement a communication protocol that allows reliable transmission of messages between the client and server. This involves handling potential issues such as signal losses, synchronization, and data corruption.
To use Minitalk, follow these steps:
- Clone the project repository:
git clone https://github.com/fortytwobytes/minitalk.git
- Navigate to the project directory:
cd minitalk
- Build the executable files:
- For the client:
make client
- For the server:
make server
- Or both with:
make
- Start the server process:
./server
- In a separate terminal, start the client process:
./client [server_pid] [message]
- Replace
[server_pid]
with the process ID of the server. - Replace
[message]
with the message you want to send. - The client will send the message to the server, and the server will display the received message.
To use the tester script, follow these steps:
- Ensure the tester script (
tester.sh
) is present in the project directory. - Set the execution permissions for the tester script:
chmod +x ./tester.sh
- Run the tester script with the server PID and options:
- For mandatory part testing:
./tester.sh [server_pid] -m
- For bonus part testing:
./tester.sh [server_pid] -b
- Replace
[server_pid]
with the process ID of the server. - Note: You can use both options
-m
and-b
together to test both mandatory and bonus parts. - The tester script will execute various test cases to validate the functionality of your implementation.
Copyright (C) 2007 Free Software Foundation, Inc. https://fsf.org/
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.