Node.js — Net модуль

Node.js — Net модуль

От автора: модуль Node js net — это специальный сетевой модуль, он используется для создания как серверов так и клиентов. Этот модуль предоставляет асинхронную сетевую оболочку и может быть импортирован с помощью следующего синтаксиса.

Методы

net.createServer ([options] [, connectionListener]) — Создает новый TCP-сервер. Аргумент connectionListener автоматически устанавливается как прослушиватель для события «connection».

net.connect(options[, connectionListener]) — Метод Фабрики, который возвращает новый «net.Socket» и подключается к указанному адресу и порту.

net.createConnection(options[, connectionListener]) — Метод Фабрики, который возвращает новый «net.Socket» и подключается к указанному адресу и порту.

net.connect(port[, host][, connectListener]) — Создает TCP-соединение с портом на хостинге. Если параметр host опущен, предполагается «localhost». Параметр connectListener будет добавлен в качестве прослушивателя для события «connect». Это метод Фабрики, который возвращает новый «net.Socket».

net.createConnection(port[, host][, connectListener]) — Создает TCP-соединение с портом на хостинге. Если параметр host опущен, предполагается «localhost». Параметр connectListener будет добавлен в качестве прослушивателя для события «connect». Это метод Фабрики, который возвращает новый «net.Socket».

net.connect(path[, connectListener]) — Создает подключение сокета Unix к пути. Параметр connectListener будет добавлен в качестве прослушивателя для события «connect». Это метод Фабрики, который возвращает новый «net.Socket».

net.createConnection (path [, connectListener]) — Создает подключение сокета Unix к пути. Параметр connectListener будет добавлен в качестве прослушивателя для события «connect». Это метод Фабрики, который возвращает новый «net.Socket».

net.isIP(input) — Проверяет, является ли input IP-адресом. Возвращает 0 для недопустимых строк, 4 — для адресов IP версии 4 и 6 — для адресов IP версии 6.

net.isIPv4(input) — Возвращает true, если input является IP-адресом версии 4, иначе возвращает false.

net.isIPv6(input) — Возвращает true, если input является IP-адресом версии 6, иначе возвращается false.

Класс — net.Server

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

Методы

server.listen(port[, host][, backlog][, callback]) — Начинает принимать соединения на указанном порте и хосте. Если параметр host опущен, сервер будет принимать соединения, направленные на любой IPv4-адрес (INADDR_ANY). При значении порта равном нулю назначается случайный порт.

server.listen(handle[, callback]) — Запускает локальный сервер сокетов, который прослушивает соединения по данному пути.

server.listen(options[, callback]) — Объект handle может быть задан и как сервер, и как сокет (в обоих случаях с базовым элементом _handle) или как объект {fd: <n>}. Это указывает серверу принимать соединения по указанному дескриптору, но предполагается, что это дескриптор файла или handle уже привязан к порту или доменному сокету. Прослушивание дескриптора файла не поддерживается в Windows.

server.listen(options[, callback]) — Параметры порта, хоста и бэклогов, а также дополнительная функция обратного вызова ведут себя так же, как и при вызове server.listen(port, [host], [backlog], [callback]). Альтернативно, параметр пути может использоваться для указания сокета UNIX.

server.close([callback]) — Закрывается, когда все соединения завершаются, и сервер выдает событие ‘close’.

server.address() — Возвращает связанный адрес, имя семейства адресов и порт сервера, как их предоставляет операционная система.

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

server.ref() — И в противоположность предыдущему методу, вызов ref на ранее очищенном сервере не позволит программе выйти, если это единственный активный сервер (поведение по умолчанию). Если сервер связан, то вызов новый ref не будет иметь никакого эффекта.

server.getConnections(callback) — Асинхронно получает количество параллельных подключений на сервере. Работает, когда сокеты отправляются на форки. Обратный вызов должен принимать два аргумента err и count.

События

listening — Запускается, когда сервер был установлен после вызова server.listen.

connection — Запускается при создании нового соединения. Объект socket, объект connection доступны для обработчика событий. Socket — это экземпляр net.Socket.

close — Запускается при закрытии сервера. Обратите внимание: если соединения существуют, это событие не будет выдаваться до тех пор, пока все соединения не будут завершены.

error — Запускается при возникновении ошибки. Событие ‘close’ будет вызываться непосредственно после этого события.

Класс — net.Socket

Этот объект является абстрактным представлением TCP или локального сокета. net.Socket реализует дуплексный интерфейс Stream. Они могут быть созданы пользователем и использоваться как клиент (с помощью connect()), или они могут быть созданы Node и переданы пользователю через событие ‘connection’ сервера.

События

net.Socket является эмитером событий и запускает следующие события.

lookup — Запускается после обработки имени хоста, но до соединения. Не применимо к сокетам UNIX.

connect — Запускается, когда соединение сокета успешно установлено.

data — Запускается при получении данных. Данные аргумента представляют собой буфер или строку. Кодировка данных устанавливается с помощью socket.setEncoding().

end — Выдается, когда другой конец сокета отправляет пакет FIN.

timeout — Запускается, если сокет простаивает из-за неактивности. Используется только для уведомления о простое сокета. Пользователь должен вручную закрыть соединение.

drain — Запускается, когда буфер записи очищается. Может использоваться для дроссельной загрузки.

error — Запускается при возникновении ошибки. Событие ‘close’ будет вызываться непосредственно после этого события.

close — Запускается после полного закрытия сокета. Аргумент has_error является логическим, указывающим, был ли сокет закрыт из-за ошибки передачи.

Свойства

net.Socket предоставляет множество важных свойств для лучше контроля взаимодействия с сокетами.

socket.bufferSize — Это свойство отображает количество символов, которые в настоящий момент буферизуются для записи.

socket.remoteAddress — Строковое представление удаленного IP-адреса. Например, «74 .125.127.100» или «2001: 4860: a005 :: 68».

socket.remoteFamily — Строковое представление удаленного семейства IP-адресов. «IPv4» или «IPv6».

socket.remotePort — Числовое представление удаленного порта. Например, 80 или 21.

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

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

socket.bytesRead — Количество принятых байтов.

socket.bytesWritten — Количество отправленных байтов.

Методы

new net.Socket([options]) — Создает новый объект сокета.

socket.connect(port[, host][, connectListener]) — Открывает соединение для данного сокета. Если заданы port и host, то сокет будет открыт как сокет TCP, если host опущен, предполагается localhost. Если задан путь, сокет будет открыт как сокет Unix для этого пути.

socket.connect(path[, connectListener]) — Открывает соединение для данного сокета. Если заданы port и host, то сокет будет открыт как сокет TCP, если host опущен, предполагается localhost. Если задан путь, сокет будет открыт как сокет Unix для этого пути.

socket.setEncoding([encoding]) — Установливает кодировку сокета как для считываемого потока.

socket.write(data[, encoding][, callback]) — Отправляет данные в сокет. Второй параметр указывает кодировку в случае, если это строчные данные — по умолчанию используется кодировка UTF8.

socket.end([data][, encoding]) — Наполовину закрывает сокет, т. е. отправляет пакет FIN. Возможно, что сервер будет продолжать отправлять некоторые данные.

socket.destroy() — Обеспечивает, чтобы в этом сокете не содержалось операций ввода-вывода данных. Необходимо только в случае ошибок (ошибка парсинга или подобная).

socket.pause() — Приостанавливает чтение данных. То есть, события «data» не будут запускаться. Используется для дросселирования загрузки.

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

socket.setTimeout (timeout [, callback]) — Устанавливает для сокета режим Timeout после timeout миллисекунд простоя сокета. По умолчанию net.Socket не устанавливается на Timeout.

socket.setNoDelay ([NODELAY]) — Отключает алгоритм Nagle. По умолчанию TCP-соединения используют алгоритм Nagle, они концентрируют данные перед отправкой. Значение true для noDelay немедленно отключает данные каждый раз, когда вызывается

socket.write(). По умолчанию для noDelay задано true.

socket.setKeepAlive ([enable] [, initialDelay]) — Включает/отключает функцию keep-alive и опционально установливает задержку до того момента, как к простаивающему сокету будет отправлен первый запрос keepalive. Для параметра enable по умолчанию задано значение false.

socket.address () — Возвращает связанный адрес, имя семейства адресов и порт сокета, как они предоставляются операционной системой. Возвращает объект с тремя свойствами, например { port: 12346, family: ‘IPv4’, address: ‘127.0.0.1’ }.

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

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

Пример

Создайте файл js с именем server.js со следующим кодом:

Файл: server.js

Теперь запустите server.js, чтобы увидеть результат:

В результате вы должны получить следующий вывод.

Создайте js-файл с именем client.js со следующим кодом:

Файл: client.js

Теперь запустите client.js из другого терминала:

В результате вы должны получить следующий результат.

Проверьте вывод на терминале, на котором выполняется server.js.

Источник: //scotch.io/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: