Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/servettonga/minitalk
The purpose of this project is to code a small data exchange program using UNIX signals.
https://github.com/servettonga/minitalk
clang sigaction signal-processing unix
Last synced: 13 days ago
JSON representation
The purpose of this project is to code a small data exchange program using UNIX signals.
- Host: GitHub
- URL: https://github.com/servettonga/minitalk
- Owner: servettonga
- Created: 2024-04-10T17:24:48.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-01-09T18:57:12.000Z (22 days ago)
- Last Synced: 2025-01-09T19:49:20.920Z (22 days ago)
- Topics: clang, sigaction, signal-processing, unix
- Language: C
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Minitalk
A client-server communication program using UNIX signals for data transmission.
## About
Minitalk is a small data exchange program that uses UNIX signals (SIGUSR1 and SIGUSR2) for character-by-character communication between processes.
### Features
- Reliable communication using only SIGUSR1 and SIGUSR2 signals
- Server displays its PID on startup
- Client can send messages to server using PID
- Server acknowledges received messages
- Handles multiple clients simultaneously
- Buffer-based output for efficiency## Usage
1. Start the server:
```bash
./server
```
The server will display its PID.2. Send messages using the client:
```bash
./client "Your message here"
```### Example
```bash
# Terminal 1
> ./server
The server is ready [PID: 12345]# Terminal 2
> ./client 12345 "Hello World!"
```## Technical Details
- Signal handling using `sigaction`
- Bit-by-bit data transmission
- Buffer-based output management
- Error handling for process communication
- Client acknowledgment system