Spec-Zone.ru › Node.js 20 LTS

Сеть

Уровень стабильности: 2 - Стабильно

Исходный код: lib/net.js

Модуль node:net предоставляет асинхронный сетевой API для создания основанных на потоках TCP-серверов или серверов IPC (net.createServer()) и клиентов (net.createConnection()).

К нему можно обратиться, используя:

const net = require('node:net'); copy

Поддержка IPC

История
Версия Изменения
v20.8.0

Поддержка привязки к абстрактным пути Unix доменных сокетов, например, \0abstract. Мы можем привязать '\0' для Node.js < v20.4.0.

Модуль node:net поддерживает IPC с именованными каналами на Windows и Unix доменными сокетами на других операционных системах.

Определение путей для соединений IPC

net.connect(), net.createConnection(), server.listen() и socket.connect() принимают параметр path для определения конечных точек IPC.

В Unix локальный домен также известен как домен Unix. Путь является файловым именем в системе. Он усекается до длины, зависящей от ОС, sizeof(sockaddr_un.sun_path) - 1. Типичные значения составляют 107 байтов в Linux и 103 байта в macOS. Если абстракция API Node.js создает сокет Unix домена, она также удаляет сокет Unix домена. Например, net.createServer() может создать сокет Unix домена, а server.close() удалит его. Но если пользователь создает сокет Unix домена вне этих абстракций, пользователю необходимо удалить его. То же самое относится к случаю, когда API Node.js создает сокет Unix домена, но программа затем выходит из строя. Короче говоря, сокет Unix домена будет виден в файловой системе и будет существовать до тех пор, пока не будет удален. В Linux можно использовать абстрактный сокет Unix, добавив \0 в начало пути, например, \0abstract. Путь к абстрактному сокету Unix не виден в файловой системе и исчезнет автоматически, когда все открытые ссылки на сокет будут закрыты.

В Windows локальный домен реализуется с использованием именованного канала. Путь должен ссылаться на запись в \\?\pipe\ или \\.\pipe\. Разрешены любые символы, но последняя может выполнить некоторую обработку имен каналов, например, разрешить .. последовательности. Несмотря на то, как это может выглядеть, пространство имен каналов является плоским. Каналы не сохраняются. Они удаляются, когда закрывается последняя ссылка на них. В отличие от сокетов Unix домена, Windows закроет и удалит канал, когда завершит работу процесс, который им владеет.

Для экранирования строк JavaScript пути необходимо указывать с дополнительным экранированием обратной косой чертой, например:

net.createServer().listen(
  path.join('\\\\?\\pipe', process.cwd(), 'myctl')); copy

Класс: net.BlockList

Добавлен в: v15.0.0, v14.18.0

Объект BlockList может использоваться с некоторыми сетевыми API для задания правил отключения входящего или исходящего доступа к определенным IP-адресам, диапазонам IP-адресов или подсетям IP.

blockList.addAddress(address[, type])

Добавлен в: v15.0.0, v14.18.0
  • address <строка> | <net.SocketAddress> IPv4 или IPv6 адрес.
  • type <строка> Либо 'ipv4' или 'ipv6'. По умолчанию: 'ipv4'.

Добавляет правило для блокировки указанного IP-адреса.

blockList.addRange(start, end[, type])

Добавлен в: v15.0.0, v14.18.0
  • start <строка> | <net.SocketAddress> Начальный IPv4 или IPv6 адрес в диапазоне.
  • end <строка> | <net.SocketAddress> Конечный IPv4 или IPv6 адрес в диапазоне.
  • type <строка> Либо 'ipv4' или 'ipv6'. По умолчанию: 'ipv4'.

Добавляет правило для блокировки диапазона IP-адресов от start (включительно) до end (включительно).

blockList.addSubnet(net, prefix[, type])

Добавлен в: v15.0.0, v14.18.0
  • net <строка> | <net.SocketAddress> Сетевой IPv4 или IPv6 адрес.
  • prefix <число> Количество битов префикса CIDR. Для IPv4 это должно быть значение от 0 до 32. Для IPv6 это должно быть между 0 и 128.
  • type <строка> Либо 'ipv4' или 'ipv6'. По умолчанию: 'ipv4'.

Добавляет правило для блокировки диапазона IP-адресов, заданных как маска подсети.

blockList.check(address[, type])

Добавлен в: v15.0.0, v14.18.0
  • address <строка> | <net.SocketAddress> IP-адрес для проверки
  • type <строка> Либо 'ipv4' или 'ipv6'. По умолчанию: 'ipv4'.
  • Возвращает: <логическое значение>

Возвращает true если указанный IP-адрес соответствует одному из правил, добавленных в BlockList.

const blockList = new net.BlockList();
blockList.addAddress('123.123.123.123');
blockList.addRange('10.0.0.1', '10.0.0.10');
blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6');

console.log(blockList.check('123.123.123.123'));  // Prints: true
console.log(blockList.check('10.0.0.3'));  // Prints: true
console.log(blockList.check('222.111.111.222'));  // Prints: false

// IPv6 notation for IPv4 addresses works:
console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Prints: true
console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true copy

blockList.rules

Добавлен в: v15.0.0, v14.18.0
  • Тип: <массив строк>

Список правил, добавленных в список блокировки.

Класс: net.SocketAddress

Добавлен в: v15.14.0, v14.18.0

new net.SocketAddress([options])

Добавлен в: v15.14.0, v14.18.0
  • options <Объект>
    • address <строка> Сетевой адрес в виде IPv4 или IPv6 строки. По умолчанию: '127.0.0.1' если family равно 'ipv4'; '::' если family равно 'ipv6'.
    • family <строка> Одно из значений 'ipv4' или 'ipv6'. По умолчанию: 'ipv4'.
    • flowlabel <число> IPv6 метка потока, используемая только если family равно 'ipv6'.
    • port <число> Номер IP порта.

socketaddress.address

Добавлен в: v15.14.0, v14.18.0
  • Тип <строка>

socketaddress.family

Добавлен в: v15.14.0, v14.18.0
  • Тип <строка> Либо 'ipv4' или 'ipv6'.

socketaddress.flowlabel

Добавлен в: v15.14.0, v14.18.0
  • Тип <число>

socketaddress.port

Добавлен в: v15.14.0, v14.18.0
  • Тип <число>
END_OF_DOCUMENT_MARKER ```

Класс: net.Server

Добавлен в: v0.1.90
  • Расширяет: <EventEmitter>

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

new net.Server([options][, connectionListener])

  • options <Объект> См. net.createServer([options][, connectionListener]).
  • connectionListener <Функция> Автоматически устанавливается в качестве обработчика события 'connection'.
  • Возвращает: <net.Сервер>

net.Server — это EventEmitter с следующими событиями:

Событие: 'close'

Добавлен в: v0.5.0

Издаётся, когда сервер закрывается. Если соединения существуют, это событие не издаётся, пока все соединения не будут завершены.

Событие: 'connection'

Добавлен в: v0.1.90
  • <net.Сокет> Объект подключения

Издаётся, когда установлено новое соединение. socket — это экземпляр net.Socket.

Событие: 'error'

Добавлен в: v0.1.90
  • <Ошибка>

Издаётся, когда происходит ошибка. В отличие от net.Socket, событие 'close' не будет издано непосредственно после этого события, если не вызвать server.close() вручную. См. пример в обсуждении server.listen().

Событие: 'listening'

Добавлен в: v0.1.90

Издаётся, когда сервер связан после вызова server.listen().

Событие: 'drop'

Добавлен в: v18.6.0, v16.17.0

Когда количество подключений достигает порога server.maxConnections, сервер будет отбрасывать новые подключения и вместо этого издавать событие 'drop'. Если это TCP-сервер, аргумент следующий, иначе аргумент undefined.

  • data <Объект> Аргумент, переданный обработчику события.
    • localAddress <строка> Локальный адрес.
    • localPort <число> Локальный порт.
    • localFamily <строка> Локальная семья.
    • remoteAddress <строка> Дистанционный адрес.
    • remotePort <число> Дистанционный порт.
    • remoteFamily <строка> Дистанционная семейство IP. 'IPv4' или 'IPv6'.

server.address()

История
Версия Изменения
v18.4.0

Свойство family теперь возвращает строку вместо числа.

v18.0.0

Свойство family теперь возвращает число вместо строки.

v0.1.90

Добавлен в: v0.1.90

  • Возвращает: <Объект> | <строка> | <null>

Возвращает привязанный address, адрес family имя и port сервера, как сообщается операционной системой, если сервер подключён к IP-сокету (полезно для определения назначенного порта при получении адреса, назначенного ОС): { port: 12346, family: 'IPv4', address: '127.0.0.1' }.

Для сервера, подключённого к каналу или Unix-сокету доменного имени, имя возвращается как строка.

const server = net.createServer((socket) => {
  socket.end('goodbye\n');
}).on('error', (err) => {
  // Handle errors here.
  throw err;
});

// Grab an arbitrary unused port.
server.listen(() => {
  console.log('opened server on', server.address());
}); copy

server.address() возвращает null до того, как будет издано событие 'listening', или после вызова server.close().

server.close([callback])

Добавлен в: v0.1.90
  • callback <Функция> Вызывается при закрытии сервера.
  • Возвращает: <net.Сервер>

Останавливает сервер от принятия новых подключений и сохраняет существующие. Эта функция асинхронна, сервер окончательно закрывается, когда все соединения завершены, и сервер издаёт событие 'close'. Необязательный callback будет вызван после того, как произойдёт событие 'close'. В отличие от этого события, он будет вызван с Error в качестве единственного аргумента, если сервер не был открыт при закрытии.

server[Symbol.asyncDispose]()

Добавлен в: v20.5.0
Уровень стабильности: 1 - Экспериментальный

Вызывает server.close() и возвращает обещание, которое выполнится, когда сервер будет закрыт.

server.getConnections(callback)

Добавлен в: v0.9.7
  • callback <Функция>
  • Возвращает: <net.Сервер>

Асинхронно получает количество одновременных подключений на сервере. Работает, когда сокеты были отправлены в ветви.

Обработчик должен принимать два аргумента err и count.

server.listen()

Запустить сервер, прослушивающий подключения. net.Server может быть TCP-сервером или сервером IPC, в зависимости от того, к чему он прослушивает.

Возможные подписи:

  • server.listen(handle[, backlog][, callback])
  • server.listen(options[, callback])
  • server.listen(path[, backlog][, callback]) для серверов IPC
  • server.listen([port[, host[, backlog]]][, callback]) для TCP-серверов

Эта функция асинхронна. Когда сервер начинает прослушивать, издаётся событие 'listening'. Последний параметр callback добавляется как обработчик события 'listening'.

Все методы listen() могут принимать параметр backlog, чтобы указать максимальную длину очереди ожидающих подключений. Фактическая длина будет определяться ОС с помощью настроек sysctl, таких как tcp_max_syn_backlog и somaxconn в Linux. Значение по умолчанию для этого параметра равно 511 (а не 512).

Все сокеты net.Socket устанавливаются в SO_REUSEADDR (см. socket(7) для получения подробностей).

Метод server.listen() может быть вызван повторно только в том случае, если во время первого вызова server.listen() произошла ошибка или был вызван server.close() . В противном случае будет брошено исключение ERR_SERVER_ALREADY_LISTEN.

Одна из наиболее распространённых ошибок, возникающих при прослушивании, — EADDRINUSE. Это происходит, когда другой сервер уже прослушивает указанный port/path/handle . Одним из способов обработки этого является повторная попытка через определённое время:

server.on('error', (e) => {
  if (e.code === 'EADDRINUSE') {
    console.error('Address in use, retrying...');
    setTimeout(() => {
      server.close();
      server.listen(PORT, HOST);
    }, 1000);
  }
}); copy
server.listen(handle[, backlog][, callback])
Добавлен в: v0.5.10
  • handle <Объект>
  • backlog <число> Общий параметр функций server.listen()
  • callback <Функция>
  • Возвращает: <net.Сервер>

Запустить сервер, прослушивающий подключения на заданном handle, который уже привязан к порту, Unix-сокету доменного имени или именованному каналу Windows.

Объект handle может быть сервером, сокетом (любое значение с внутренним свойством _handle) или объектом с свойством fd, которое является корректным дескриптором файла.

Прослушивание на дескрипторе файла не поддерживается в Windows.

server.listen(options[, callback])
История
Версия Изменения
v15.6.0

Добавлена поддержка AbortSignal.

v11.4.0

Поддерживается параметр ipv6Only.

v0.11.14

Добавлен в: v0.11.14

  • options <Объект> Обязательный. Поддерживает следующие свойства:
    • backlog <число> Общий параметр функций server.listen().
    • exclusive <логическое_значение> По умолчанию: false
    • host <строка>
    • ipv6Only <логическое_значение> Для TCP-серверов, установка ipv6Only в true отключит поддержку двойного стека, т.е. привязка к хосту :: не заставит 0.0.0.0 быть привязанным. По умолчанию: false.
    • path <строка> Будет проигнорировано, если указан параметр port. См. Определение путей для подключений IPC.
    • port <число>
    • readableAll <логическое_значение> Для IPC-серверов делает пайп читаемым для всех пользователей. По умолчанию: false.
    • signal <AbortSignal> AbortSignal, который может быть использован для закрытия сервера прослушивания.
    • writableAll <логическое_значение> Для IPC-серверов делает пайп записываемым для всех пользователей. По умолчанию: false.
  • callback <Функция> функции.
  • Возвращает: <net.Сервер>

Если port указан, он ведет себя так же, как server.listen([port[, host[, backlog]]][, callback]). В противном случае, если path указан, он ведет себя так же, как server.listen(path[, backlog][, callback]). Если ни один из них не указан, будет выброшено исключение.

Если exclusive равен false (по умолчанию), рабочие процессы кластера будут использовать один и тот же базовый обработчик, позволяя совместное использование задач обработки подключений. Когда exclusive равен true, обработчик не делится, и попытка совместного использования порта приводит к ошибке. Пример прослушивания на эксклюзивном порте показан ниже.

server.listen({
  host: 'localhost',
  port: 80,
  exclusive: true,
}); copy

Когда exclusive равен true и базовый обработчик совместно используется, возможно, что несколько рабочих процессов запросят обработчик с различными значениями backlog. В этом случае будет использоваться первый backlog, переданный мастер-процессу.

Запуск IPC-сервера как root может привести к тому, что путь к серверу будет недоступен для пользователей без привилегий. Используя readableAll и writableAll сервер будет доступен для всех пользователей.

Если параметр signal включен, вызов .abort() на соответствующем AbortController аналогичен вызову .close() на сервере:

const controller = new AbortController();
server.listen({
  host: 'localhost',
  port: 80,
  signal: controller.signal,
});
// Later, when you want to close the server.
controller.abort(); copy
server.listen(path[, backlog][, callback])
Добавлен в: v0.1.90
  • path <строка> Путь, к которому должен подключиться сервер. См. Определение путей для подключений IPC.
  • backlog <число> Общий параметр функций server.listen().
  • callback <Функция>.
  • Возвращает: <net.Сервер>

Запустить IPC-сервер, прослушивающий подключения по заданному path.

server.listen([port[, host[, backlog]]][, callback])
Добавлен в: v0.1.90
  • port <число>
  • host <строка>
  • backlog <число> Общий параметр функций server.listen().
  • callback <Функция>.
  • Возвращает: <net.Сервер>

Запустить TCP-сервер, прослушивающий подключения по заданному port и host.

Если port опущено или равно 0, операционная система назначит произвольный свободный порт, который можно получить, используя server.address().port после того, как событие 'listening' было выпущено.

Если host опущено, сервер будет принимать подключения к неопределённому IPv6-адресу (::) при наличии IPv6 или к неопределённому IPv4-адресу (0.0.0.0) в противном случае.

В большинстве операционных систем, прослушивание неопределённого IPv6-адреса (::) может заставить сервер также прослушивать неопределённый IPv4-адрес (0.0.0.0).

server.listening

Добавлен в: v5.7.0
  • <логическое_значение> Указывает, прослушивает ли сервер подключения.

server.maxConnections

Добавлен в: v0.2.0
  • <целое_число>

Установите это свойство, чтобы отклонять подключения, когда количество подключений сервера становится высоким.

Не рекомендуется использовать этот параметр после отправки сокета в дочерний процесс с помощью child_process.fork().

server.ref()

Добавлен в: v0.9.1
  • Возвращает: <net.Сервер>

Обратное unref(), вызов ref() на ранее unref сервере не позволит программе завершиться, если это единственный оставшийся сервер (поведение по умолчанию). Если сервер ref вызов ref() не повлияет.

server.unref()

Добавлен в: v0.9.1
  • Возвращает: <net.Сервер>

Вызов unref() на сервере позволит программе завершиться, если это единственный активный сервер в системе событий. Если сервер уже unref вызов unref() не повлияет.

Класс: net.Socket

Добавлен в: v0.3.4
  • Расширяет: <stream.Duplex>

Этот класс является абстракцией TCP-соккета или потокового конечной точки IPC (использует именованные каналы на Windows и сокеты Unix-домена в противном случае). Он также является EventEmitter.

Объект net.Socket может быть создан пользователем и напрямую использоваться для взаимодействия с сервером. Например, он возвращается методом net.createConnection(), позволяя пользователю взаимодействовать с сервером.

Он также может быть создан Node.js и передан пользователю при получении подключения. Например, он передаётся слушателям события 'connection', которое генерируется сервером net.Server, позволяя пользователю взаимодействовать с клиентом.

new net.Socket([options])

История
Версия Изменения
v15.14.0

Добавлена поддержка AbortSignal.

v0.3.4

Добавлен в: v0.3.4

  • options <Object> Доступные параметры:
    • allowHalfOpen <boolean> Если установлено значение false, сокет автоматически завершит запись, когда закончится чтение. Подробнее см. net.createServer() и событие 'end'. По умолчанию: false.
    • fd <number> Если указано, сокет будет обернут вокруг существующего сокета с указанным дескриптором файла, иначе будет создан новый сокет.
    • readable <boolean> Разрешить чтение из сокета, когда передан fd, в противном случае игнорируется. По умолчанию: false.
    • signal <AbortSignal> Сигнал прерывания, который может быть использован для уничтожения сокета.
    • writable <boolean> Разрешить запись в сокет, когда передан fd, в противном случае игнорируется. По умолчанию: false.
  • Возвращает: <net.Socket>

Создаёт новый объект сокета.

Созданный сокет может быть либо TCP-соккетом, либо потоковой конечной точкой IPC, в зависимости от того, с чем он connect().

Событие: 'close'

Добавлен в: v0.1.90
  • hadError <boolean> true если у сокета была ошибка передачи.

Издаётся, когда сокет полностью закрыт. Аргумент hadError — логическое значение, указывающее, произошла ли ошибка передачи при закрытии сокета.

Событие: 'connect'

Добавлен в: v0.1.90

Издаётся, когда подключение к сокету успешно установлено. См. net.createConnection().

Событие: 'connectionAttempt'

Добавлен в: v20.12.0
  • ip <string> IP-адрес, к которому пытается подключиться сокет.
  • port <number> Порт, к которому пытается подключиться сокет.
  • family <number> Семейство IP-адреса. Может быть 6 для IPv6 или 4 для IPv4.

Издаётся при начале новой попытки подключения. Может быть издано несколько раз, если алгоритм автоматического выбора семейства включён в socket.connect(options).

Событие: 'connectionAttemptFailed'

Добавлен в: v20.12.0
  • ip <string> IP-адрес, к которому пытался подключиться сокет.
  • port <number> Порт, к которому пытался подключиться сокет.
  • family <number> Семейство IP-адреса. Может быть 6 для IPv6 или 4 для IPv4.
  • error <Error> Ошибка, связанная с неудачей.

Издаётся при неудачной попытке подключения. Может быть издано несколько раз, если алгоритм автоматического выбора семейства включён в socket.connect(options).

Событие: 'connectionAttemptTimeout'

Добавлен в: v20.12.0
  • ip <string> IP-адрес, к которому пытался подключиться сокет.
  • port <number> Порт, к которому пытался подключиться сокет.
  • family <number> Семейство IP-адреса. Может быть 6 для IPv6 или 4 для IPv4.

Издаётся, когда попытка подключения истекла по времени. Издаётся только при включённом алгоритме автоматического выбора семейства в socket.connect(options).

Событие: 'data'

Добавлен в: v0.1.90
  • <Buffer> | <string>

Издаётся при получении данных. Аргумент data будет Buffer или String. Кодировка данных устанавливается методом socket.setEncoding().

Данные будут потеряны, если нет слушателя, когда Socket издаёт событие 'data'.

Событие: 'drain'

Добавлен в: v0.1.90

Издаётся, когда буфер записи становится пустым. Может использоваться для ограничения загрузки.

См. также: значения возвращаемые socket.write().

Событие: 'end'

Добавлен в: v0.1.90

Издаётся, когда другой конец сокета сигнализирует об окончании передачи, завершая чтение сокета.

По умолчанию (allowHalfOpen — false) сокет отправит пакет завершения передачи и уничтожит свой дескриптор файла, после того как обработает очередь ожидающих записей. Однако, если allowHalfOpen установлено в true, сокет не будет автоматически end() сторону записи, позволяя пользователю записывать произвольное количество данных. Пользователь должен явно вызвать end() для закрытия соединения (т.е. отправки пакета FIN).

Событие: 'error'

Добавлен в: v0.1.90
  • <Error>

Издаётся, когда возникает ошибка. Событие 'close' будет вызвано непосредственно после этого события.

Событие: 'lookup'

История
Версия Изменения
v5.10.0

Теперь поддерживается параметр host.

v0.11.3

Добавлен в: v0.11.3

Издаётся после разрешения имени хоста, но до подключения. Не применимо к Unix-сокеттам.

  • err <Error> | <null> Объект ошибки. См. dns.lookup().
  • address <string> IP-адрес.
  • family <number> | <null> Тип адреса. См. dns.lookup().
  • host <string> Имя хоста.

Событие: 'ready'

Добавлен в: v9.11.0

Издаётся, когда сокет готов к использованию.

Вызывается сразу после 'connect'.

Событие: 'timeout'

Добавлена в: v0.1.90

Выдается, если сокет истекает из-за бездействия. Это только уведомление о том, что сокет простаивает. Пользователь должен вручную закрыть соединение.

См. также: socket.setTimeout().

socket.address()

История
Версия Изменения
v18.4.0

Свойство family теперь возвращает строку вместо числа.

v18.0.0

Свойство family теперь возвращает число вместо строки.

v0.1.90

Добавлена в: v0.1.90

  • Возвращает: <Объект>

Возвращает привязанное значение address, адрес family имя и port сокета, как сообщается операционной системой: { port: 12346, family: 'IPv4', address: '127.0.0.1' }

socket.autoSelectFamilyAttemptedAddresses

Добавлена в: v19.4.0
  • <Массив строк>

Это свойство присутствует только в том случае, если алгоритм автоматического выбора семейства включён в socket.connect(options), и представляет собой массив адресов, которые были предприняты.

Каждый адрес — строка в формате $IP:$PORT. Если подключение было успешным, последний адрес — это адрес, к которому в данный момент подключён сокет.

socket.bufferSize

Добавлена в: v0.3.8Устарела с: v14.6.0
Уровень стабильности: 0 - Устарела: Используйте writable.writableLength вместо этого.
  • <Целое число>

Это свойство показывает количество символов, буферизованных для записи. Буфер может содержать строки, длина которых после кодирования пока неизвестна. Поэтому это число является лишь приближением количества байтов в буфере.

net.Socket обладает свойством, что socket.write() всегда работает. Это помогает пользователям быстро начать работу. Компьютер не всегда может справиться с объёмом данных, который записывается в сокет. Возможно, сетевое соединение просто слишком медленное. Node.js будет внутренне помещать данные, записанные в сокет, в очередь и отправлять их по сети, когда это станет возможным.

Следствием этого внутреннего буферирования является то, что объём памяти может увеличиваться. Пользователи, которые сталкиваются с большим или увеличивающимся bufferSize, должны попытаться «регулировать» потоки данных в своей программе с помощью socket.pause() и socket.resume().

socket.bytesRead

Добавлена в: v0.5.3
  • <Целое число>

Объём полученных байтов.

socket.bytesWritten

Добавлена в: v0.5.3
  • <Целое число>

Объём отправленных байтов.

socket.connect()

Инициализация подключения к заданному сокету.

Возможные подписи:

  • socket.connect(options[, connectListener])
  • socket.connect(path[, connectListener]) для подключений IPC.
  • socket.connect(port[, host][, connectListener]) для подключений TCP.
  • Возвращает: <net.Сокет> Сам сокет.

Эта функция асинхронна. При установлении подключения будет генерироваться событие 'connect'. При возникновении проблемы с подключением вместо события 'connect' будет генерироваться событие 'error' с ошибкой, переданной слушателю 'error'. Последний параметр connectListener, если указан, будет добавлен в качестве слушателя события 'connect' один раз.

Эта функция должна использоваться только для повторного подключения сокета после того, как было генерировано событие 'close', иначе может привести к неопределённому поведению.

socket.connect(options[, connectListener])
История
Версия Изменения
v20.0.0

Значение по умолчанию для параметра autoSelectFamily теперь равно true. Флаг командной строки --enable-network-family-autoselection был переименован в --network-family-autoselection. Старое имя теперь является псевдонимом, но его использование не рекомендуется.

v19.4.0

Значение по умолчанию для параметра autoSelectFamily может быть изменено во время выполнения с помощью setDefaultAutoSelectFamily или через опцию командной строки --enable-network-family-autoselection.

v19.3.0, v18.13.0

Добавлен параметр autoSelectFamily.

v17.7.0, v16.15.0

Теперь поддерживаются параметры noDelay, keepAlive, и keepAliveInitialDelay.

v12.10.0

Добавлен параметр onread.

v6.0.0

Параметр hints теперь имеет значение по умолчанию 0 во всех случаях. Ранее, при отсутствии параметра family, он имел значение по умолчанию dns.ADDRCONFIG | dns.V4MAPPED.

v5.11.0

Теперь поддерживается параметр hints.

v0.1.90

Добавлена в: v0.1.90

  • options <Объект>
  • connectListener <Функция> Общий параметр методов socket.connect(). Будет добавлен как слушатель события 'connect' один раз.
  • Возвращает: <net.Сокет> Сам сокет.

Инициализация подключения к заданному сокету. Обычно этот метод не нужен, сокет должен быть создан и открыт с помощью net.createConnection(). Используйте только при реализации пользовательского сокета.

Для подключений TCP доступны следующие options:

  • autoSelectFamily <boolean>: Если установлено в true, это включает алгоритм автоматического определения семейства, который приблизительно реализует раздел 5 RFC 8305. Параметр all, передаваемый в lookup, устанавливается в true, и сокеты пытаются подключиться ко всем полученным адресам IPv6 и IPv4 последовательно до тех пор, пока не будет установлено подключение. Сначала пробуется первый возвращенный адрес AAAA, затем первый возвращенный адрес А, затем второй возвращенный адрес AAAA и так далее. Каждая попытка подключения (кроме последней) получает указанное время, заданное параметром autoSelectFamilyAttemptTimeout, перед истечением времени ожидания и переходом к следующему адресу. Игнорируется, если параметр family не равен 0 или если localAddress установлено. Ошибки подключения не генерируются, если хотя бы одно подключение успешно. Если все попытки подключения завершаются неудачей, генерируется одиночное AggregateError со всеми неудачными попытками. По умолчанию: net.getDefaultAutoSelectFamily().
  • autoSelectFamilyAttemptTimeout <number>: Время в миллисекундах ожидания завершения попытки подключения перед переходом к следующему адресу при использовании параметра autoSelectFamily. Если значение равно положительному целому числу меньше, чем 10, вместо него будет использоваться значение 10. По умолчанию: net.getDefaultAutoSelectFamilyAttemptTimeout().
  • family <number>: Версия стека IP. Должно быть 4, 6, или 0. Значение 0 указывает, что разрешены как IPv4, так и IPv6 адреса. По умолчанию: 0.
  • hints <number> Дополнительные dns.lookup() подсказки.
  • host <string> Хост, к которому должен подключиться сокет. По умолчанию: 'localhost'.
  • keepAlive <boolean> Если установлено в true, это включает функциональность keep-alive для сокета сразу после установления подключения, аналогично тому, что выполняется в socket.setKeepAlive(). По умолчанию: false.
  • keepAliveInitialDelay <number> Если установлено в положительное число, это задает начальную задержку перед отправкой первого запроса keepalive для сокета в состоянии ожидания. По умолчанию: 0.
  • localAddress <string> Локальный адрес, с которого должен подключиться сокет.
  • localPort <number> Локальный порт, с которого должен подключиться сокет.
  • lookup <Function> Пользовательская функция поиска. По умолчанию: dns.lookup().
  • noDelay <boolean> Если установлено в true, это отключает использование алгоритма Nagle сразу после установления сокета. По умолчанию: false.
  • port <number> Требуемый порт, к которому должен подключиться сокет.

Для подключений IPC доступны options:

  • path <string> Требуемый путь, к которому должен подключиться клиент. См. Определение путей для подключений IPC. Если указано, TCP-специфические параметры выше игнорируются.

Для обоих типов доступны options:

  • onread <Object> Если указано, входящие данные хранятся в одном buffer и передаются в предоставленную callback при поступлении данных на сокет. Это приведет к тому, что функциональность потоковой передачи не предоставит никаких данных. Сокет будет генерировать события, такие как 'error', 'end', и 'close', как обычно. Методы, такие как pause() и resume(), также будут работать как ожидается.
    • buffer <Buffer> | <Uint8Array> | <Function> Либо повторно используемый блок памяти для хранения входящих данных, либо функция, возвращающая такой блок.
    • callback <Function> Эта функция вызывается для каждого блока входящих данных. Ей передаются два аргумента: количество байтов, записанных в buffer, и ссылка на buffer. Возвращение false из этой функции неявным образом pause() сокет. Эта функция будет выполняться в глобальном контексте.

Ниже приведен пример клиента, использующего параметр onread:

const net = require('node:net');
net.connect({
  port: 80,
  onread: {
    // Reuses a 4KiB Buffer for every read from the socket.
    buffer: Buffer.alloc(4 * 1024),
    callback: function(nread, buf) {
      // Received data is available in `buf` from 0 to `nread`.
      console.log(buf.toString('utf8', 0, nread));
    },
  },
}); copy
socket.connect(path[, connectListener])
  • path <string> Путь, к которому должен подключиться клиент. См. Определение путей для подключений IPC.
  • connectListener <Function> Общий параметр методов socket.connect(). Будет добавлен как обработчик события 'connect' один раз.
  • Возвращает: <net.Socket> Сам сокет.

Инициализация подключения IPC к заданному сокету.

Псевдоним для socket.connect(options[, connectListener]), вызываемого с { path: path } в качестве options.

socket.connect(port[, host][, connectListener])
Добавлен в: v0.1.90
  • port <number> Порт, к которому должен подключиться клиент.
  • host <string> Хост, к которому должен подключиться клиент.
  • connectListener <Function> Общий параметр методов socket.connect(). Будет добавлен как обработчик события 'connect' один раз.
  • Возвращает: <net.Socket> Сам сокет.

Инициализация TCP-подключения к заданному сокету.

Псевдоним для socket.connect(options[, connectListener]), вызываемого с {port: port, host: host} в качестве options.

socket.connecting

Добавлен в: v6.1.0
  • <boolean>

Если true, socket.connect(options[, connectListener]) был вызван и еще не завершен. Он останется true до тех пор, пока сокет не подключится, затем устанавливается в false и генерируется событие 'connect'. Обратите внимание, что обратный вызов socket.connect(options[, connectListener]) является обработчиком события 'connect'.

socket.destroy([error])

Добавлен в: v0.1.90
  • error <Object>
  • Возвращает: <net.Socket>

Гарантирует, что на этом сокете не будет происходить дальнейшей активности ввода-вывода. Уничтожает поток и закрывает соединение.

См. writable.destroy() для получения дополнительной информации.

socket.destroyed

  • <boolean> Указывает, уничтожено ли соединение. После уничтожения соединения с ним больше нельзя передавать данные.

См. writable.destroyed для получения дополнительной информации.

socket.destroySoon()

Добавлен в: v0.3.4

Уничтожает сокет после записи всех данных. Если событие 'finish' уже было сгенерировано, сокет уничтожается немедленно. Если сокет все еще доступен для записи, он неявно вызывает socket.end().

socket.end([data[, encoding]][, callback])

Добавлен в: v0.1.90
  • data <строка> | <Буфер> | <Uint8Массив>
  • encoding <строка> Используется только при string. По умолчанию: 'utf8'.
  • callback <Функция> Необязательный обратный вызов, когда сокет завершён.
  • Возвращает: <net.Сокет> Сам сокет.

Закрывает сокет наполовину. Т.е., отправляет пакет FIN. Возможно, сервер всё ещё отправит некоторые данные.

См. writable.end() для получения более подробной информации.

socket.localAddress

Добавлен в: v0.9.6
  • <строка>

Строковое представление локального IP-адреса, на котором подключается удалённый клиент. Например, в сервере, слушающем на '0.0.0.0', если клиент подключается на '192.168.1.1', значение socket.localAddress будет '192.168.1.1'.

socket.localPort

Добавлен в: v0.9.6
  • <целое число>

Числовое представление локального порта. Например, 80 или 21.

socket.localFamily

Добавлен в: v18.8.0, v16.18.0
  • <строка>

Строковое представление локальной IP-семейства. 'IPv4' или 'IPv6'.

socket.pause()

  • Возвращает: <net.Сокет> Сам сокет.

Приостанавливает чтение данных. То есть, события 'data' не будут выводиться. Полезно для ограничения скорости загрузки.

socket.pending

Добавлен в: v11.2.0, v10.16.0
  • <логическое значение>

Это true , если сокет ещё не подключен, либо потому что .connect() ещё не был вызван, либо потому что он всё ещё в процессе подключения (см. socket.connecting).

socket.ref()

Добавлен в: v0.9.1
  • Возвращает: <net.Сокет> Сам сокет.

Противоположность unref(), вызов ref() на ранее unref сокете не позволит программе выйти, если это единственный оставшийся сокет (поведение по умолчанию). Если сокет ref , вызов ref повторно не повлияет.

socket.remoteAddress

Добавлен в: v0.5.10
  • <строка>

Строковое представление удалённого IP-адреса. Например, '74.125.127.100' или '2001:4860:a005::68'. Значение может быть undefined , если сокет уничтожен (например, если клиент отключился).

socket.remoteFamily

Добавлен в: v0.11.14
  • <строка>

Строковое представление удалённой IP-семейства. 'IPv4' или 'IPv6'. Значение может быть undefined , если сокет уничтожен (например, если клиент отключился).

socket.remotePort

Добавлен в: v0.5.10
  • <целое число>

Числовое представление удалённого порта. Например, 80 или 21. Значение может быть undefined , если сокет уничтожен (например, если клиент отключился).

socket.resetAndDestroy()

Добавлен в: v18.3.0, v16.17.0
  • Возвращает: <net.Сокет>

Закрывает TCP-соединение, отправив пакет RST, и уничтожает поток. Если этот TCP-сокет находится в состоянии подключения, он отправит пакет RST и уничтожит этот TCP-сокет после подключения. В противном случае, он вызовет socket.destroy с ошибкой ERR_SOCKET_CLOSED . Если это не TCP-сокет (например, канал), вызов этого метода немедленно выбросит ошибку ERR_INVALID_HANDLE_TYPE.

socket.resume()

  • Возвращает: <net.Сокет> Сам сокет.

Возобновляет чтение после вызова socket.pause().

socket.setEncoding([encoding])

Добавлен в: v0.1.90
  • encoding <строка>
  • Возвращает: <net.Сокет> Сам сокет.

Устанавливает кодировку для сокета как Поток чтения. См. readable.setEncoding() для получения дополнительной информации.

socket.setKeepAlive([enable][, initialDelay])

История
Версия Изменения
v13.12.0, v12.17.0

Были добавлены новые значения по умолчанию для TCP_KEEPCNT и TCP_KEEPINTVL параметров сокета.

v0.1.92

Добавлен в: v0.1.92

  • enable <логическое значение> По умолчанию: false
  • initialDelay <число> По умолчанию: 0
  • Возвращает: <net.Сокет> Сам сокет.

Включает/отключает функцию keep-alive и, необязательно, устанавливает начальную задержку перед отправкой первого запроса keep-alive на неактивном сокете.

Установите initialDelay (в миллисекундах), чтобы установить задержку между последним полученным пакетом данных и первым запросом keep-alive. Установка 0 для initialDelay оставит значение неизменным от значения по умолчанию (или предыдущего).

Включение keep-alive функции установит следующие параметры сокета:

  • SO_KEEPALIVE=1
  • TCP_KEEPIDLE=initialDelay
  • TCP_KEEPCNT=10
  • TCP_KEEPINTVL=1

socket.setNoDelay([noDelay])

Добавлен в: v0.1.90
  • noDelay <логическое значение> По умолчанию: true
  • Возвращает: <net.Сокет> Сам сокет.

Включает/отключает использование алгоритма Найгла.

При создании TCP-соединения алгоритм Найгла будет включён.

Алгоритм Найгла задерживает отправку данных по сети. Он пытается оптимизировать пропускную способность за счёт задержки.

Передача true для noDelay или отсутствие аргумента отключит алгоритм Найгла для сокета. Передача false для noDelay включит алгоритм Найгла.

socket.setTimeout(timeout[, callback])

История
Версия Изменения
v18.0.0

Передача недопустимого обратного вызова в аргумент callback теперь выводит ошибку ERR_INVALID_ARG_TYPE вместо ERR_INVALID_CALLBACK.

v0.1.90

Добавлен в: v0.1.90

  • timeout <число>
  • callback <Функция>
  • Возвращает: <net.Сокет> Сам сокет.

Устанавливает таймаут сокета через timeout миллисекунд бездействия на сокете. По умолчанию у net.Socket нет таймаута.

При срабатывании таймаута бездействия сокет получит событие 'timeout', но соединение не будет разорвано. Пользователь должен вручную вызвать socket.end() или socket.destroy(), чтобы завершить соединение.

socket.setTimeout(3000);
socket.on('timeout', () => {
  console.log('socket timeout');
  socket.end();
}); copy

Если timeout равно 0, то существующий таймаут бездействия отключён.

Необязательный параметр callback будет добавлен как одноразовый обработчик события 'timeout'.

socket.timeout

Добавлен в: v10.7.0
  • <число> | <неопределённое>

Таймаут сокета в миллисекундах, установленный с помощью socket.setTimeout(). Он равен undefined если таймаут не был установлен.

socket.unref()

Добавлен в: v0.9.1
  • Возвращает: <net.Socket> Сам сокет.

Вызов unref() для сокета позволит программе выйти, если это единственный активный сокет в системе событий. Если сокет уже unrefed, повторный вызов unref() не повлияет.

socket.write(data[, encoding][, callback])

Добавлен в: v0.1.90
  • data <строка> | <Буфер> | <Uint8Array>
  • encoding <строка> Используется только, когда данные string. По умолчанию: utf8.
  • callback <Функция>
  • Возвращает: <boolean>

Отправляет данные по сокету. Второй параметр задаёт кодировку в случае строки. По умолчанию используется кодировка UTF8.

Возвращает true если все данные успешно переданы в буфер ядра. Возвращает false если все или часть данных были помещены в пользовательскую память. 'drain' будет выпущен, когда буфер снова будет свободен.

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

См. метод потока Writable write() для получения дополнительной информации.

socket.readyState

Добавлен в: v0.5.0
  • <строка>

Это свойство представляет состояние соединения в виде строки.

  • Если поток подключается, то socket.readyState равно opening.
  • Если поток читаем и записываем, то это open.
  • Если поток читаем, но не записываем, то это readOnly.
  • Если поток не читаем и не записываем, то это writeOnly.

net.connect()

Псевдоним к net.createConnection().

Возможные сигнатуры:

  • net.connect(options[, connectListener])
  • net.connect(path[, connectListener]) для подключений IPC.
  • net.connect(port[, host][, connectListener]) для TCP-подключений.

net.connect(options[, connectListener])

Добавлен в: v0.7.0
  • options <Объект>
  • connectListener <Функция>
  • Возвращает: <net.Socket>

Псевдоним к net.createConnection(options[, connectListener]).

net.connect(path[, connectListener])

Добавлен в: v0.1.90
  • path <строка>
  • connectListener <Функция>
  • Возвращает: <net.Socket>

Псевдоним к net.createConnection(path[, connectListener]).

net.connect(port[, host][, connectListener])

Добавлен в: v0.1.90
  • port <число>
  • host <строка>
  • connectListener <Функция>
  • Возвращает: <net.Socket>

Псевдоним к net.createConnection(port[, host][, connectListener]).

net.createConnection()

Функция-фабрика, которая создаёт новый net.Socket, немедленно инициирует соединение с socket.connect(), а затем возвращает net.Socket , который инициирует соединение.

При установлении соединения событие 'connect' будет выброшено на возвращённом сокете. Последний параметр connectListener, если он указан, будет добавлен в качестве обработчика события 'connect' один раз.

Возможные подписи:

  • net.createConnection(options[, connectListener])
  • net.createConnection(path[, connectListener]) для соединений IPC.
  • net.createConnection(port[, host][, connectListener]) для TCP-соединений.

Функция net.connect() является псевдонимом этой функции.

net.createConnection(options[, connectListener])

Добавлена в: v0.1.90
  • options <Объект> Требуется. Будет передан как в вызов new net.Socket([options]), так и в метод socket.connect(options[, connectListener]).
  • connectListener <Функция> Общий параметр функций net.createConnection(). Если указан, будет добавлен в качестве обработчика события 'connect' на возвращённом сокете один раз.
  • Возвращает: <net.Socket> Новый созданный сокет, используемый для инициирования соединения.

Для доступных опций см. new net.Socket([options]) и socket.connect(options[, connectListener]).

Дополнительные опции:

  • timeout <число> Если установлено, будет использоваться для вызова socket.setTimeout(timeout) после создания сокета, но до начала соединения.

Ниже приведён пример клиента эхо-сервера, описанного в разделе net.createServer():

const net = require('node:net');
const client = net.createConnection({ port: 8124 }, () => {
  // 'connect' listener.
  console.log('connected to server!');
  client.write('world!\r\n');
});
client.on('data', (data) => {
  console.log(data.toString());
  client.end();
});
client.on('end', () => {
  console.log('disconnected from server');
}); copy

Для подключения к сокету /tmp/echo.sock:

const client = net.createConnection({ path: '/tmp/echo.sock' }); copy

net.createConnection(path[, connectListener])

Добавлена в: v0.1.90
  • path <строка> Путь, к которому должен подключиться сокет. Будет передан в socket.connect(path[, connectListener]). См. Идентификация путей для соединений IPC.
  • connectListener <Функция> Общий параметр функций net.createConnection(), обработчик события 'connect' на инициирующем сокете. Будет передан в socket.connect(path[, connectListener]).
  • Возвращает: <net.Socket> Новый созданный сокет, используемый для инициирования соединения.

Инициирует соединение IPC.

Эта функция создаёт новый net.Socket со всеми параметрами по умолчанию, немедленно инициирует соединение с помощью socket.connect(path[, connectListener]), а затем возвращает net.Socket , который инициирует соединение.

net.createConnection(port[, host][, connectListener])

Добавлена в: v0.1.90
  • port <число> Порт, к которому должен подключиться сокет. Будет передан в socket.connect(port[, host][, connectListener]).
  • host <строка> Хост, к которому должен подключиться сокет. Будет передан в socket.connect(port[, host][, connectListener]). По умолчанию: 'localhost'.
  • connectListener <Функция> Общий параметр функций net.createConnection(), обработчик события 'connect' на инициирующем сокете. Будет передан в socket.connect(port[, host][, connectListener]).
  • Возвращает: <net.Socket> Новый созданный сокет, используемый для инициирования соединения.

Инициирует TCP-соединение.

Эта функция создаёт новый net.Socket со всеми параметрами по умолчанию, немедленно инициирует соединение с socket.connect(port[, host][, connectListener]), а затем возвращает net.Socket , который инициирует соединение.

net.createServer([options][, connectionListener])

История
Версия Изменения
v20.1.0

Теперь поддерживается параметр highWaterMark.

v17.7.0, v16.15.0

Теперь поддерживаются параметры noDelay, keepAlive, и keepAliveInitialDelay.

v0.5.0

Добавлена в: v0.5.0

  • options <Объект>

    • allowHalfOpen <логическое> Если установлено в false, то сокет автоматически завершит запись, когда завершится чтение. По умолчанию: false.
    • highWaterMark <число> Опционально перезаписывает все параметры net.Socket по readableHighWaterMark и writableHighWaterMark. По умолчанию: См. stream.getDefaultHighWaterMark().
    • keepAlive <логическое> Если установлено в true, то это активирует функцию keep-alive на сокете сразу после получения нового входящего соединения, аналогично тому, что выполняется в socket.setKeepAlive(). По умолчанию: false.
    • keepAliveInitialDelay <число> Если установлено положительным числом, устанавливает начальную задержку перед отправкой первого запроса keepalive на неактивном сокете. По умолчанию: 0.
    • noDelay <логическое> Если установлено в true, то отключает алгоритм Nagle сразу после получения нового входящего соединения. По умолчанию: false.
    • pauseOnConnect <логическое> Указывает, следует ли приостановить сокет при входящих соединениях. По умолчанию: false.
  • connectionListener <Функция> Автоматически устанавливается в качестве обработчика события 'connection'.

  • Возвращает: <net.Server>

Создаёт новый TCP- или IPC-сервер.

Если allowHalfOpen установлено в true, когда другой конец сокета сигнализирует о завершении передачи, сервер отправит сигнал завершения только при явном вызове socket.end(). Например, в контексте TCP, когда получен пакет FIN, пакет FIN отправляется обратно только при явном вызове socket.end(). До этого момента соединение является полузакрытым (нечитаемым, но всё ещё записываемым). См. событие 'end' и RFC 1122 (раздел 4.2.2.13) для получения дополнительной информации.

Если pauseOnConnect установлено в true, то сокет, связанный с каждым входящим соединением, будет приостановлен, и данные не будут читаться из его дескриптора. Это позволяет передавать соединения между процессами без чтения каких-либо данных исходным процессом. Для начала чтения данных из приостановленного сокета вызовите socket.resume().

Сервер может быть TCP-сервером или IPC-сервером, в зависимости от того, к чему он listen().

Вот пример TCP-сервера эха, который прослушивает подключения на порту 8124:

const net = require('node:net');
const server = net.createServer((c) => {
  // 'connection' listener.
  console.log('client connected');
  c.on('end', () => {
    console.log('client disconnected');
  });
  c.write('hello\r\n');
  c.pipe(c);
});
server.on('error', (err) => {
  throw err;
});
server.listen(8124, () => {
  console.log('server bound');
}); copy

Протестируйте это, используя telnet:

telnet localhost 8124 copy

Для прослушивания на сокете /tmp/echo.sock:

server.listen('/tmp/echo.sock', () => {
  console.log('server bound');
}); copy

Используйте nc для подключения к серверу сокета Unix-домена:

nc -U /tmp/echo.sock copy

net.getDefaultAutoSelectFamily()

Добавлен в: v19.4.0

Получает текущее значение по умолчанию для параметра autoSelectFamily у socket.connect(options). Начальное значение по умолчанию равно true, если не задан параметр командной строки --no-network-family-autoselection.

  • Возвращает: <булево> Текущее значение по умолчанию параметра autoSelectFamily.

net.setDefaultAutoSelectFamily(value)

Добавлен в: v19.4.0

Устанавливает значение по умолчанию для параметра autoSelectFamily у socket.connect(options).

  • value <булево> Новое значение по умолчанию. Начальное значение по умолчанию равно false.

net.getDefaultAutoSelectFamilyAttemptTimeout()

Добавлен в: v19.8.0

Получает текущее значение по умолчанию для параметра autoSelectFamilyAttemptTimeout у socket.connect(options). Начальное значение по умолчанию равно 250 или значению, указанному в параметре командной строки --network-family-autoselection-attempt-timeout.

  • Возвращает: <число> Текущее значение по умолчанию параметра autoSelectFamilyAttemptTimeout.

net.setDefaultAutoSelectFamilyAttemptTimeout(value)

Добавлен в: v19.8.0

Устанавливает значение по умолчанию для параметра autoSelectFamilyAttemptTimeout у socket.connect(options).

  • value <число> Новое значение по умолчанию, которое должно быть положительным числом. Если число меньше 10, используется значение 10 вместо него. Начальное значение по умолчанию равно 250 или значению, указанному в параметре командной строки --network-family-autoselection-attempt-timeout.

net.isIP(input)

Добавлен в: v0.3.0
  • input <строка>
  • Возвращает: <целое число>

Возвращает 6 если input — адрес IPv6. Возвращает 4 если input — адрес IPv4 в точечной десятичной записи без ведущих нулей. В противном случае возвращает 0.

net.isIP('::1'); // returns 6
net.isIP('127.0.0.1'); // returns 4
net.isIP('127.000.000.001'); // returns 0
net.isIP('127.0.0.1/24'); // returns 0
net.isIP('fhqwhgads'); // returns 0 copy

net.isIPv4(input)

Добавлен в: v0.3.0
  • input <строка>
  • Возвращает: <булево>

Возвращает true если input — адрес IPv4 в точечной десятичной записи без ведущих нулей. В противном случае возвращает false.

net.isIPv4('127.0.0.1'); // returns true
net.isIPv4('127.000.000.001'); // returns false
net.isIPv4('127.0.0.1/24'); // returns false
net.isIPv4('fhqwhgads'); // returns false copy

net.isIPv6(input)

Добавлен в: v0.3.0
  • input <строка>
  • Возвращает: <булево>

Возвращает true если input — адрес IPv6. В противном случае возвращает false.

net.isIPv6('::1'); // returns true
net.isIPv6('fhqwhgads'); // returns false copy

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v20.x/docs/api/net.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API