You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.6 KiB

---
Nom de l'utilisateur : Antoine
Date de la note : 2021-10-13
Sujet : Introduction aux Sockets avec socat (Bash)
Résumer : Cette note explique comment utiliser la commande socat pour créer et gérer des sockets en Bash.
Tags : Réseaux, Bash, Sockets, socat
---
# Note : Introduction aux Sockets avec socat (Bash)
Les sockets sont des mécanismes de communication interprocessus qui permettent à des processus sur un réseau de s'échanger des données. `socat` est une commande très puissante en Bash qui peut être utilisée pour créer des sockets et effectuer diverses opérations sur les données échangées. Voici un aperçu des sockets avec `socat` :
## Créer un socket TCP
Pour créer un socket TCP à l'aide de `socat`, utilisez la syntaxe suivante :
```bash
socat TCP-LISTEN:port,fork EXEC:"commande"
```
- `port` : Le port sur lequel le socket écoutera les connexions entrantes.
- `commande` : La commande à exécuter pour gérer la communication avec le socket.
Exemple :
```bash
socat TCP-LISTEN:8080,fork EXEC:"cat fichier.txt"
```
## Créer un socket UDP
Pour créer un socket UDP avec `socat`, utilisez la syntaxe suivante :
```bash
socat UDP-LISTEN:port,fork EXEC:"commande"
```
- `port` : Le port sur lequel le socket écoutera les datagrammes entrants.
- `commande` : La commande à exécuter pour gérer la communication avec le socket.
Exemple :
```bash
socat UDP-LISTEN:12345,fork EXEC:"echo 'Message reçu : ' && cat -"
```
## Se connecter à un socket TCP
Pour vous connecter à un socket TCP à l'aide de `socat`, utilisez la syntaxe suivante :
```bash
socat TCP:host:port
```
- `host` : L'adresse IP ou le nom d'hôte du serveur.
- `port` : Le port sur lequel le serveur écoute.
Exemple :
```bash
socat TCP:localhost:8080
```
## Envoyer des données via un socket
Pour envoyer des données via un socket avec `socat`, utilisez la syntaxe suivante :
```bash
echo "Données à envoyer" | socat - TCP:host:port
```
- `host` : L'adresse IP ou le nom d'hôte du destinataire.
- `port` : Le port sur lequel le destinataire attend les données.
Exemple :
```bash
echo "Hello, World!" | socat - TCP:localhost:8080
```
## Conclusion
Les sockets sont un concept fondamental en programmation réseau, et `socat` est un outil précieux pour les manipuler en Bash. Vous pouvez créer des sockets TCP et UDP, vous connecter à des sockets existants et échanger des données de manière flexible à l'aide de cette puissante commande.
N'hésitez pas à explorer davantage `socat` et ses options pour répondre à vos besoins spécifiques en matière de communication réseau dans un environnement Bash.