Logo

Developer learning path

Node.js

Работа с сетевыми протоколами через Node.js

Работа с сетевыми протоколами через Node.js

81

#description

В Node.js есть множество модулей для работы с различными сетевыми протоколами, такими как HTTP, HTTPS, TCP, UDP и др. Рассмотрим наиболее часто используемые модули.

Модуль http позволяет создавать HTTP-серверы и отправлять HTTP-запросы.

Например, для создания сервера необходимо использовать метод http.createServer(), который возвращает объект сервера для прослушивания определенного порта:

                    
const http = require('http');
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World!');
});

server.listen(3000,() => {
  console.log(`Server running at http://localhost:3000/`);
});
                  

Модуль https предоставляет возможность создавать защищенные HTTPS-серверы.

Для этого нужно генерировать SSL-сертификат:

                    
const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

const server = https.createServer(options, (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World!');
});

server.listen(3000,() => {
  console.log(`Server running at https://localhost:3000/`);
});
                  

Модуль net используется для создания TCP-серверов и TCP-клиентов.

Например, для создания TCP-сервера нужно использовать метод net.createServer():

                    
const net = require('net');

const server = net.createServer((socket) => {
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});

server.listen(1337, '127.0.0.1',() => {
  console.log(`Server running at tcp://127.0.0.1:1337/`);
});
                  

Модуль dgram используется для работы с UDP-сокетами.

Например, для создания UDP-сервера можно использовать метод dgram.createSocket():

                    
const dgram = require('dgram');
const server = dgram.createSocket('udp4');

server.on('listening', () => {
  const address = server.address();
  console.log(`Server listening ${address.address}:${address.port}`);
});

server.on('message', (msg, remoteInfo) => {
  console.log(`Message received from ${remoteInfo.address}:${remoteInfo.port}: ${msg}`);
});

server.bind(1234);
                  

Таким образом, Node.js предоставляет мощное API для работы с сетевыми протоколами, что позволяет создавать как простые, так и сложные приложения.

March 25, 2023

Если вам не совсем понятен какой-то абзац текста из лекции, просто нажмите на него и сможете задать уточняющие вопросы по нему.

Если же непонятен весь вопрос, то нажмите на кнопки внизу, чтобы получить новый вариант объяснения, практические примеры или критически оценить сам вопрос.