Серверы и клиенты TCP и домена Unix работают в цикле событий Elide, поэтому скрипт продолжает работу, пока сервер слушает или открыт сокет:
import net from "node:net";
const server = net.createServer((socket) => {
socket.end("hello");
server.close();
});
server.listen(0, "127.0.0.1", () => {
const { port } = server.address();
net.connect(port, "127.0.0.1").on("data", (data) => console.log(String(data)));
});Также доступны вспомогательные функции для адресов и классы значений:
import net from "node:net";
console.log(net.isIP("127.0.0.1")); // 4
console.log(net.isIP("::1")); // 6
console.log(net.isIP("not-an-ip")); // 0
const blocked = new net.BlockList();
blocked.addAddress("127.0.0.1");
console.log(blocked.check("127.0.0.1")); // trueМодуль экспортирует Socket, Stream, Server, BlockList, SocketAddress,
connect, createConnection, createServer, вспомогательные функции для IP и настройки
автовыбора семейства адресов по умолчанию. listen() и connect() принимают путь в файловой системе
для сокетов домена Unix.
Когда активны флаги песочницы, доступ к сети управляется
--allow-net[=HOSTS] и --deny-net <HOSTS>.
Reference
Status: Partial · Not measured
net exports
BlockList, Server, Socket, SocketAddress, Stream, connect, createConnection, createServer, getDefaultAutoSelectFamily, getDefaultAutoSelectFamilyAttemptTimeout, isIP, isIPv4, isIPv6, setDefaultAutoSelectFamily, setDefaultAutoSelectFamilyAttemptTimeout
Not implemented
BoundSocket.