UNIX Domain Sockets: что это и как использовать

UNIX Domain Sockets: что это и как использовать UNIX Domain Sockets (UDS) — это механизм обмена данными между процессами внутри одной машины. В отличие от TCP/UDP сокетов, они не используют сетевой стек, что делает их быстрее и безопаснее. Основные характеристики Работают только на локальном хосте. Используют файловую систему для адресации (например, /var/run/docker.sock). Поддерживают как потоковый (аналог TCP), так и датаграммный (аналог UDP) режим. Обеспечивают более высокую производительность по сравнению с TCP на localhost. Где применяются Docker и Podman: управление контейнерами через сокет /var/run/docker.sock. PostgreSQL: локальное подключение через UDS быстрее, чем TCP localhost:5432. Nginx/HAProxy: проксирование трафика через UDS вместо TCP. gRPC: поддержка UDS для сервисов в пределах одной ноды. Пример: сервер и клиент на Python Сервер import socket import os SOCKET_FILE = "/tmp/uds_demo.sock" if os.path.exists(SOCKET_FILE): os.remove(SOCKET_FILE) server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) server.bind(SOCKET_FILE) server.listen(1) print("Сервер ждёт соединений...") conn, _ = server.accept() print("Клиент подключен") while True: data = conn.recv(1024) if not data: break print("Получено:", data.decode()) conn.sendall(b"Echo: " + data) conn.close() Клиент ...

октября 11, 2025 · 2 минуты · 228 слов · John Cena