Как создать TCP сервер на Node.js
В этой статье мы рассмотрим, как создать простой TCP сервер на Node.js. TCP является одним из наиболее распространенных протоколов транспортного уровня. Он обеспечивает надежный способ отправки пакетов в упорядоченном и проверенном на ошибки потоке. TCP ориентирован на соединение, что означает, что перед отправкой данных между клиентом и сервером должно быть установлено соединение.
Установка Node.js:
Если у вас еще не установлен Node.js, скачайте и установите его с официального сайта.
Создание проекта:
Создайте новую папку для вашего проекта и перейдите в нее:
mkdir tcp-server
cd tcp-server
Создадим файл server.js
Импортируем net модуль, Этот модуль не требует установки, так как он идет вместе с Node.js.
const net = require("net");
Вызовем метод createServerver. Он создает объект сервера.
const net = require("net");
const server = net.createServer();
Добавим callback в метод createServer. Который вызовится в момент выполнения connection события. Это событие возникает при установлении нового соединения с сервером. Это событие возвращает объект, которому мы дали имя socket. Этот socket объект является экземпляром net.Socket.
const net = require("net");
const server = net.createServer((socket) => {
console.log("Клиент подключился");
});
Мы можем отправлять данные в сокет, используя write метод. Мы передаем ему строку по нашему выбору, и она отправляется клиенту.
const net = require("net");
const server = net.createServer((socket) => {
console.log("Клиент подключился");
socket.write("Привет от TCP сервера!");
});
Событие data вызывается при получении данных от клиента.
const net = require("net");
const server = net.createServer((socket) => {
console.log("Клиент подключился");
socket.write("Привет от TCP сервера!");
socket.on("data", (data) => {
console.log("Получено:", data.toString());
});
});
Событие end возникает, когда сокет полностью закрывается. Это означает, что связь закончилась.
const net = require("net");
const server = net.createServer((socket) => {
console.log("Клиент подключился");
socket.write("Привет от TCP сервера!");
socket.on("data", (data) => {
console.log("Получено:", data.toString());
});
socket.on("end", () => {
console.log("Клиент отключился");
});
// Обрабатываем ошибки
socket.on("error", (err) => {
console.error("Ошибка:", err.message);
});
});
Устанавливаем порт и адрес, на которых сервер будет слушать.
const PORT = 3500;
const HOST = 0.0.0.0;
Наконец, чтобы запустить сервер, мы используем .listen() метод. Ему передается номер порта и адресс. Теперь наш сервер работает и ждет новых подключений.
const net = require('net');
const server = net.createServer((socket) => {
console.log('Client connected');
socket.write('Hello from TCP server!');
socket.on('data', (data) => {
console.log('Msg from client:', data.toString());
});
socket.on('end', () => {
console.log('Client disconnected');
});
// Обрабатываем ошибки
socket.on('error', (err) => {
console.error('Error:', err.message);
});
});
const PORT = 3500;
const HOST = 0.0.0.0;
server.listen(PORT, HOST);
Метод listen так же принимает в качестве аргумента callback который вызывается когда listening событие генерируется, когда сервер начинает прослушивать входящие соединения. Мы используем это событие для вывода строки, сообщающей нам, что сервер работает.
server.listen(PORT, HOST, () => {
console.log(`Server listening ${HOST}:${PORT}`);
});
Запуск сервера:
Запустите сервер с помощью следующей команды:
node server.js
Вы должны увидеть сообщение:
Сервер слушает 0.0.0.0:3500
Подключение к серверу:
Для тестирования нашего TCP сервера мы можем использовать команду telnet. Откройте новый терминал и выполните следующую команду:
telnet 0.0.0.0 3500
Вы должны увидеть сообщение:
Привет от TCP сервера!
Либо напишем небольшой файл client.js. Для проверки нашего сервера.
const net = require("net");
const client = net.connect({ port: 3500 }, () => {
console.log("Connection established");
client.write("Hello from client");
});
client.on("data", (data) => {
console.log("Msg from server:", data.toString());
});
client.on("end", () => {
console.log("Disconnected from server");
});
Запустите его при помощи:
node client.js
Заключение:
В этой статье мы создали простой TCP сервер на Node.js, который принимает соединения от клиентов, обрабатывает данные и отправляет ответные сообщения. Это базовый пример, который можно расширять и дорабатывать в зависимости от ваших потребностей. Вы можете добавить авторизацию, хранение данных, обработку различных команд и многое другое. Полный код этого примера доступен в GitHub Gist.
Если у вас возникли вопросы или предложения, пишите мне в социальных сетях. Удачного кодирования!
Читать далее
- 12 февраля 2026 г.

Редизайн сайта в эпоху AI и конец привычного SEO
История очередного редизайна моего сайта, GSAP-анимации и почему в эпоху AI дизайн больше не приносит трафик из поиска.
- 9 января 2026 г.

Отчёт о трафике: Декабрь 2025 – Январь 2026
Трафик сайта за последние 30 дней — краткий отчёт и наблюдения.
