simple socket server

This commit is contained in:
Alexander Popov 2023-06-18 19:12:58 +03:00
parent f1446881e3
commit fba8b3dea0
Signed by: iiiypuk
GPG Key ID: E47FE0AB36CD5ED6

View File

@ -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"
```