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