From fba8b3dea0ac1bb9a1e4f3a1215b4bb1f303cd74 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Sun, 18 Jun 2023 19:12:58 +0300 Subject: [PATCH] simple socket server --- .../2023/linux/simple-socket-server-client.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 content/posts/2023/linux/simple-socket-server-client.md 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" +```