Skip to content

Minitalk: A reliable client-server communication system using signals for efficient data transfer.

License

Notifications You must be signed in to change notification settings

fortytwobytes/minitalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minitalk

Project Description

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.

Problem Statement

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.

Usage

To use Minitalk, follow these steps:

  1. Clone the project repository: git clone https://github.com/fortytwobytes/minitalk.git
  2. Step 1
  3. Navigate to the project directory: cd minitalk
  4. Build the executable files:
    • For the client: make client
    • For the server: make server
    • Or both with: make
    Step 2
  5. Start the server process: ./server
  6. Step 3
  7. 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.
    Step 4
  8. The client will send the message to the server, and the server will display the received message.
  9. Step 5

Tester

To use the tester script, follow these steps:

  1. Ensure the tester script (tester.sh) is present in the project directory.
  2. Set the execution permissions for the tester script: chmod +x ./tester.sh
  3. 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
  4. Replace [server_pid] with the process ID of the server.
  5. Note: You can use both options -m and -b together to test both mandatory and bonus parts.
  6. The tester script will execute various test cases to validate the functionality of your implementation.

Copyright

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.