Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jotavare/minitalk
System that sends a message from client to server using UNIX signals for communication.
https://github.com/jotavare/minitalk
ascii binary bits c client-server gdb makefile minitalk norminette pid signal-processing signals sigusr1 sigusr2 unix unix-signals valgrind
Last synced: 2 months ago
JSON representation
System that sends a message from client to server using UNIX signals for communication.
- Host: GitHub
- URL: https://github.com/jotavare/minitalk
- Owner: jotavare
- License: mit
- Created: 2022-12-30T21:26:30.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-26T23:10:18.000Z (7 months ago)
- Last Synced: 2024-06-27T02:51:21.274Z (7 months ago)
- Topics: ascii, binary, bits, c, client-server, gdb, makefile, minitalk, norminette, pid, signal-processing, signals, sigusr1, sigusr2, unix, unix-signals, valgrind
- Language: C
- Homepage:
- Size: 1.29 MB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
About •
How to use •
Mandatory •
Bonus •
Norminette •
Contributing •
License## ABOUT
This is a server/client system that uses UNIX signals for communication. The server displays its PID and receives decrypted signals as characters, while the client encrypts messages and sends true/false signals using SIGUSR1 or SIGUSR2 to the server's PID.- [Subject](https://github.com/jotavare/minitalk/blob/master/subject/en_subject_minitalk.pdf) `PDF`
- [References](https://github.com/jotavare/42-resources#02-minitalk) `GitHub`## HOW TO USE
#### 1º - Clone the repository
```bash
git clone https://github.com/jotavare/minitalk
```#### 2º - Enter the project folder and run `make`
```bash
cd minitalk/minitalk
make
```#### 3º - Run server or server_bonus and copy its PID
```bash
./server
./server_bonus
```#### 4º - Open another terminal, run client or client_bonus, paste the PID and write a message
```bash
./client [SERVER PID] [MESSAGE]
./client_bonus [SERVER PID] [MESSAGE] [EMOTE]
```#### MAKEFILE RULES
`make` - Compile minitalk **mandatory** files.
`make bonus` - Compile minitalk **bonus** files.
`make all` - Compile **mandatory** + **bonus** files.
`make clean` - Delete all .o (object files) files.
`make fclean` - Delete all .o (object files) and .a (executable) files.
`make re` - Use rules `fclean` + `all`.
## MANDATORY
- [x] Produce server and client executables.
- [x] The Client must communicate a string passed as a parameter to the server (referenced by its process ID) and display it.
- [x] Use `SIGUSR1` and `SIGUSR2` signals only.## BONUS
- [x] Add reception acknowledgement system.
- [x] Support Unicode characters.## NORMINETTE
> At 42 School, it is expected that almost every project is written following the Norm, which is the coding standard of the school.```
- No for, do...while, switch, case, goto, ternary operators, or variable-length arrays allowed;
- Each function must be a maximum of 25 lines, not counting the function's curly brackets;
- Each line must be at most 80 columns wide, with comments included;
- A function can take 4 named parameters maximum;
- No assigns and declarations in the same line (unless static);
- You can't declare more than 5 variables per function;
- ...
```* [42 Norms](https://github.com/42School/norminette/blob/master/pdf/en.norm.pdf) - Information about 42 code norms. `PDF`
* [Norminette](https://github.com/42School/norminette) - Tool to respect the code norm, made by 42. `GitHub`
* [42 Header](https://github.com/42Paris/42header) - 42 header for Vim. `GitHub`## CONTRIBUTING
If you find any issues or have suggestions for improvements, feel free to fork the repository and open an issue or submit a pull request.
## LICENSE
This project is available under the MIT License. For further details, please refer to the [LICENSE](https://github.com/jotavare/minitalk/blob/master/LICENSE) file.