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
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.
|
|
|