https://github.com/deryaxacar/42-minitalk
The Minitalk project is a program that enables communication between a server and a client in Unix-based operating systems. This communication channel is created using Unix's signal mechanism. The project offers an opportunity to understand and implement basic concepts such as signal handling and IPC (Inter-Process Communication).
https://github.com/deryaxacar/42-minitalk
42 42-school 42born2code 42cursus 42projects 42school api c-language c-programming c-project client client-project client-server client-server-chat-application minitalk minitalk42 signal signal-processing
Last synced: about 1 month ago
JSON representation
The Minitalk project is a program that enables communication between a server and a client in Unix-based operating systems. This communication channel is created using Unix's signal mechanism. The project offers an opportunity to understand and implement basic concepts such as signal handling and IPC (Inter-Process Communication).
- Host: GitHub
- URL: https://github.com/deryaxacar/42-minitalk
- Owner: deryaxacar
- Created: 2024-01-10T20:08:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-25T16:09:24.000Z (3 months ago)
- Last Synced: 2025-03-30T02:22:35.787Z (2 months ago)
- Topics: 42, 42-school, 42born2code, 42cursus, 42projects, 42school, api, c-language, c-programming, c-project, client, client-project, client-server, client-server-chat-application, minitalk, minitalk42, signal, signal-processing
- Language: C
- Homepage: https://github.com/deryaxacar/42-Minitalk
- Size: 1.48 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
42 - Minitalk 📡
The Minitalk project is a program that enables communication between a server and a client in Unix-based operating systems. This communication channel is created using Unix's signal mechanism. The project offers an opportunity to understand and implement basic concepts such as signal handling and IPC (Inter-Process Communication).
![]()
## Project Goal 🎯
The main goal of the Minitalk project is to establish communication between two processes using Unix signals and facilitate data exchange. This project helps deepen our understanding of Unix operating systems and enhances our system-level programming skills.
Communication between the server and client happens by running two separate programs: a server program and a client program. The server program catches a specific signal to receive and process messages. The client program sends a signal to the server to transmit a message. In this way, data can be exchanged between the two programs.
The project provides an opportunity to understand the concept of IPC, which plays a fundamental role in network applications and client-server architecture. It also offers practical experience in implementing and handling the signal mechanism, one of the core features of Unix operating systems.
The Minitalk project is an essential learning tool for anyone who wants to develop a deep understanding of operating systems and networking concepts, as it creates a simple communication channel using Unix signals while illustrating how a basic network application works.
## Use Cases 📜
The Minitalk project includes the following use cases:
- Creating a server and client
- Sending messages between the server and client
- Properly establishing and managing the communication channel## Project Structure 📁
The Minitalk project may include the following components:
- **minitalk.h**: Header file containing function prototypes and necessary definitions.
- **server.c**: C file containing server functions and signal handlers.
- **client.c**: C file containing client functions and signal handlers.
- **utils.c**: C file containing utility functions and data structures.
- **Makefile**: Makefile used to automate the compilation and execution of the project.## Bonus Section 🌟
- **client_bonus.c**: Bonus C file containing client functions and signal handlers.
- **server_bonus.c**: Bonus C file containing server functions and signal handlers.
- **utils_bonus.c**: C file containing bonus section utility functions and data structures.
- **Makefile**: Makefile used to automate the compilation and execution of the project.## Requirements ⚙️
To run the Minitalk project, the following requirements must be met:
- Unix-based operating system (Linux, macOS)
- GCC compiler## Installation 🛠️
Follow these steps to run the project locally:
1. Clone the repository to your local machine: `git clone https://github.com/deryaxacar/minitalk.git`
2. Navigate to the project directory: `cd minitalk`
3. Run the Makefile to compile the server and client: `make`## Usage 🚀
To run the server and client, follow these steps:
1. Start the server: `./server`
2. Start the client and send a message to the server: `./client [server_pid] [message]`---
2025 This project was created by Derya ACAR.