diff --git a/content/posts/2023/linux/simple-socket-server-client.md b/content/posts/2023/linux/simple-socket-server-client.md new file mode 100644 index 0000000..d3f3dd9 --- /dev/null +++ b/content/posts/2023/linux/simple-socket-server-client.md @@ -0,0 +1,55 @@ +--- +title: "🆕 Простой пример socket сервера и клиента на Linux" +date: 2023-06-18T19:12:32+03:00 +draft: false +tags: [network, linux, tips] +--- + +## Метод № 1: Использование nc (netcat) + +**Сервер** + +```sh +nc -l localhost 3000 +``` + +**Клиент** + +```sh +nc localhost 3000 +``` + +## Тоже самое, но на unixsocket + +**Сервер** + +```sh +nc -l -U ./a.sock +``` + +**Клиент** + +```sh +nc -U ./a.sock +``` + +## Бонус + +Скрипт сервера, который отправляет текущую дату, если получает `d` +и закрывает соединение, если получает `q`. + +```bash +#!/bin/bash + +coproc nc -l localhost 3000 + +while read -r cmd; do + case $cmd in + d) date ;; + q) break ;; + *) echo 'What?' + esac +done <&"${COPROC[0]}" >&"${COPROC[1]}" + +kill "$COPROC_PID" +```