Skip to content

DKOK01/Minitalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Minitalk

πŸ“Œ Project Overview

Minitalk is a 42 school project that demonstrates interprocess communication using UNIX signals. The project consists of a server and a client program, where the client sends a string of characters to the server using SIGUSR1 and SIGUSR2 signals, which the server reconstructs and displays.

πŸš€ Features

  • Implements signal handling using sigaction().
  • Transmits characters bit by bit using SIGUSR1 and SIGUSR2.
  • Supports Unicode and emoji characters.
  • Handles error cases, including invalid PIDs.
  • Implements bonus features, such as acknowledgment signals and improved performance.

πŸ“‚ Project Structure

Minitalk/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ client.c
β”‚   β”œβ”€β”€ minitalk.h
β”‚   β”œβ”€β”€ server.c
β”œβ”€β”€ bonus/
β”‚   β”œβ”€β”€ client_bonus.c
β”‚   β”œβ”€β”€ server_bonus.c
β”œβ”€β”€ includes/
β”œβ”€β”€ libft/
β”‚   β”œβ”€β”€ libft.a
β”œβ”€β”€ Makefile
β”œβ”€β”€ README.md

πŸ› οΈ Compilation

To compile the mandatory part:

make

To compile the bonus part:

make bonus

To clean object files:

make clean

To remove all compiled binaries and libraries:

make fclean

To recompile everything:

make re

πŸƒβ€β™‚οΈ Usage

1️⃣ Run the server:

./server

It will display:

Server PID: <PID>

2️⃣ Run the client to send a message:

./client <server_PID> "Hello, world!"

The server will then output:

Hello, world!

πŸ“ Bonus Features

  • Acknowledgment Signal: The server sends a signal back to the client after receiving a full character.
  • Unicode Support: Allows sending and displaying Unicode characters and emojis.
  • Improved Performance: Optimized to prevent unnecessary delays.

πŸ“œ Authors

  • Developed as part of the 42 School curriculum.
  • Successfully validated

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors