Net
[Estável: 2 - Estável]
Estável: 2 Estabilidade: 2 - Estável
Código Fonte: lib/net.js
O módulo node:net fornece uma API de rede assíncrona para criar servidores TCP ou IPC baseados em fluxo (net.createServer()) e clientes (net.createConnection()).
Ele pode ser acessado usando:
import net from 'node:net';const net = require('node:net');Suporte a IPC
[Histórico]
| Versão | Mudanças |
|---|---|
| v20.8.0 | Suporte para vincular ao caminho do socket de domínio Unix abstrato como \0abstract. Podemos vincular '\0' para Node.js \< v20.4.0. |
O módulo node:net oferece suporte a IPC com pipes nomeados no Windows e sockets de domínio Unix em outros sistemas operacionais.
Identificando caminhos para conexões IPC
net.connect(), net.createConnection(), server.listen() e socket.connect() usam um parâmetro path para identificar endpoints IPC.
No Unix, o domínio local também é conhecido como domínio Unix. O caminho é um nome de caminho do sistema de arquivos. Ele lançará um erro quando o comprimento do nome do caminho for maior que o comprimento de sizeof(sockaddr_un.sun_path). Os valores típicos são 107 bytes no Linux e 103 bytes no macOS. Se uma abstração de API Node.js criar o socket de domínio Unix, ela também desvinculará o socket de domínio Unix. Por exemplo, net.createServer() pode criar um socket de domínio Unix e server.close() o desvinculará. Mas se um usuário criar o socket de domínio Unix fora dessas abstrações, o usuário precisará removê-lo. O mesmo se aplica quando uma API Node.js cria um socket de domínio Unix, mas o programa trava. Resumindo, um socket de domínio Unix estará visível no sistema de arquivos e persistirá até ser desvinculado. No Linux, você pode usar o socket abstrato Unix adicionando \0 ao início do caminho, como \0abstract. O caminho para o socket abstrato Unix não está visível no sistema de arquivos e desaparecerá automaticamente quando todas as referências abertas ao socket forem fechadas.
No Windows, o domínio local é implementado usando um pipe nomeado. O caminho deve se referir a uma entrada em \\?\pipe\ ou \\.\pipe\. Quaisquer caracteres são permitidos, mas o último pode fazer algum processamento de nomes de pipe, como resolver sequências ... Apesar de como possa parecer, o namespace do pipe é plano. Os pipes não persistirão. Eles são removidos quando a última referência a eles é fechada. Ao contrário dos sockets de domínio Unix, o Windows fechará e removerá o pipe quando o processo proprietário for encerrado.
O escape de string JavaScript requer que os caminhos sejam especificados com escape de barra invertida extra, como:
net.createServer().listen(
path.join('\\\\?\\pipe', process.cwd(), 'myctl'));Classe: net.BlockList
Adicionado em: v15.0.0, v14.18.0
O objeto BlockList pode ser usado com algumas APIs de rede para especificar regras para desabilitar o acesso de entrada ou saída a endereços IP, intervalos de IP ou sub-redes IP específicos.
blockList.addAddress(address[, type])
Adicionado em: v15.0.0, v14.18.0
address<string> | <net.SocketAddress> Um endereço IPv4 ou IPv6.type<string>'ipv4'ou'ipv6'. Padrão:'ipv4'.
Adiciona uma regra para bloquear o endereço IP fornecido.
blockList.addRange(start, end[, type])
Adicionado em: v15.0.0, v14.18.0
start<string> | <net.SocketAddress> O endereço IPv4 ou IPv6 inicial no intervalo.end<string> | <net.SocketAddress> O endereço IPv4 ou IPv6 final no intervalo.type<string>'ipv4'ou'ipv6'. Padrão:'ipv4'.
Adiciona uma regra para bloquear um intervalo de endereços IP de start (inclusivo) a end (inclusivo).
blockList.addSubnet(net, prefix[, type])
Adicionado em: v15.0.0, v14.18.0
net<string> | <net.SocketAddress> O endereço de rede IPv4 ou IPv6.prefix<number> O número de bits de prefixo CIDR. Para IPv4, este deve ser um valor entre0e32. Para IPv6, este deve estar entre0e128.type<string>'ipv4'ou'ipv6'. Padrão:'ipv4'.
Adiciona uma regra para bloquear um intervalo de endereços IP especificado como uma máscara de sub-rede.
blockList.check(address[, type])
Adicionado em: v15.0.0, v14.18.0
address<string> | <net.SocketAddress> O endereço IP a ser verificadotype<string> Ou'ipv4'ou'ipv6'. Padrão:'ipv4'.- Retorna: <boolean>
Retorna true se o endereço IP fornecido corresponder a qualquer uma das regras adicionadas à 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')); // Imprime: true
console.log(blockList.check('10.0.0.3')); // Imprime: true
console.log(blockList.check('222.111.111.222')); // Imprime: false
// A notação IPv6 para endereços IPv4 funciona:
console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Imprime: true
console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Imprime: trueblockList.rules
Adicionado em: v15.0.0, v14.18.0
- Tipo: <string[]>
A lista de regras adicionadas à blocklist.
BlockList.isBlockList(value)
Adicionado em: v23.4.0
value<any> Qualquer valor JS- Retorna
truese ovaluefor umnet.BlockList.
Classe: net.SocketAddress
Adicionado em: v15.14.0, v14.18.0
new net.SocketAddress([options])
Adicionado em: v15.14.0, v14.18.0
options<Object>
socketaddress.address
Adicionado em: v15.14.0, v14.18.0
- Tipo <string>
socketaddress.family
Adicionado em: v15.14.0, v14.18.0
- Tipo <string> Ou
'ipv4'ou'ipv6'.
socketaddress.flowlabel
Adicionado em: v15.14.0, v14.18.0
- Tipo <number>
socketaddress.port
Adicionado em: v15.14.0, v14.18.0
- Tipo <number>
SocketAddress.parse(input)
Adicionado em: v23.4.0
input<string> Uma string de entrada contendo um endereço IP e uma porta opcional, por exemplo,123.1.2.3:1234ou[1::1]:1234.- Retorna: <net.SocketAddress> Retorna um
SocketAddressse a análise for bem-sucedida. Caso contrário, retornaundefined.
Classe: net.Server
Adicionado em: v0.1.90
- Estende: <EventEmitter>
Essa classe é usada para criar um servidor TCP ou IPC.
new net.Server([options][, connectionListener])
options<Object> Vejanet.createServer([options][, connectionListener]).connectionListener<Function> Definido automaticamente como um listener para o evento'connection'.- Retorna: <net.Server>
net.Server é um EventEmitter com os seguintes eventos:
Evento: 'close'
Adicionado em: v0.5.0
Emitido quando o servidor fecha. Se existirem conexões, esse evento não é emitido até que todas as conexões sejam encerradas.
Evento: 'connection'
Adicionado em: v0.1.90
- <net.Socket> O objeto de conexão
Emitido quando uma nova conexão é feita. socket é uma instância de net.Socket.
Evento: 'error'
Adicionado em: v0.1.90
Emitido quando ocorre um erro. Ao contrário de net.Socket, o evento 'close' não será emitido diretamente após este evento, a menos que server.close() seja chamado manualmente. Veja o exemplo na discussão de server.listen().
Evento: 'listening'
Adicionado em: v0.1.90
Emitido quando o servidor foi vinculado após chamar server.listen().
Evento: 'drop'
Adicionado em: v18.6.0, v16.17.0
Quando o número de conexões atinge o limite de server.maxConnections, o servidor descartará novas conexões e emitirá o evento 'drop' em vez disso. Se for um servidor TCP, o argumento é o seguinte, caso contrário, o argumento é undefined.
data<Object> O argumento passado para o listener do evento.
server.address()
[Histórico]
| Versão | Mudanças |
|---|---|
| v18.4.0 | A propriedade family agora retorna uma string em vez de um número. |
| v18.0.0 | A propriedade family agora retorna um número em vez de uma string. |
| v0.1.90 | Adicionado em: v0.1.90 |
Retorna o address vinculado, o nome da family do endereço e a port do servidor, conforme relatado pelo sistema operacional, se estiver ouvindo em um socket IP (útil para descobrir qual porta foi atribuída ao obter um endereço atribuído pelo SO): { port: 12346, family: 'IPv4', address: '127.0.0.1' }.
Para um servidor que está ouvindo em um pipe ou socket de domínio Unix, o nome é retornado como uma string.
const server = net.createServer((socket) => {
socket.end('adeus\n');
}).on('error', (err) => {
// Lidar com erros aqui.
throw err;
});
// Obtenha uma porta não utilizada arbitrária.
server.listen(() => {
console.log('servidor aberto em', server.address());
});server.address() retorna null antes que o evento 'listening' seja emitido ou após chamar server.close().
server.close([callback])
Adicionado em: v0.1.90
callback<Função> Chamado quando o servidor é fechado.- Retorna: <net.Server>
Impede que o servidor aceite novas conexões e mantém as conexões existentes. Esta função é assíncrona, o servidor é finalmente fechado quando todas as conexões são encerradas e o servidor emite um evento 'close'. O callback opcional será chamado quando o evento 'close' ocorrer. Ao contrário desse evento, ele será chamado com um Error como seu único argumento se o servidor não estiver aberto quando for fechado.
server[Symbol.asyncDispose]()
Adicionado em: v20.5.0, v18.18.0
[Estável: 1 - Experimental]
Estável: 1 Estabilidade: 1 - Experimental
Chama server.close() e retorna uma promise que é cumprida quando o servidor é fechado.
server.getConnections(callback)
Adicionado em: v0.9.7
callback<Function>- Retorna: <net.Server>
Obtém assincronamente o número de conexões simultâneas no servidor. Funciona quando os sockets foram enviados para forks.
O callback deve receber dois argumentos err e count.
server.listen()
Inicia um servidor ouvindo conexões. Um net.Server pode ser um servidor TCP ou IPC, dependendo do que ele ouve.
Assinaturas possíveis:
server.listen(handle[, backlog][, callback])server.listen(options[, callback])server.listen(path[, backlog][, callback])para servidores IPCserver.listen([port[, host[, backlog]]][, callback])para servidores TCP
Esta função é assíncrona. Quando o servidor começa a ouvir, o evento 'listening' será emitido. O último parâmetro callback será adicionado como um listener para o evento 'listening'.
Todos os métodos listen() podem receber um parâmetro backlog para especificar o comprimento máximo da fila de conexões pendentes. O comprimento real será determinado pelo SO através de configurações sysctl, como tcp_max_syn_backlog e somaxconn no Linux. O valor padrão deste parâmetro é 511 (não 512).
Todos os net.Socket são definidos como SO_REUSEADDR (ver socket(7) para detalhes).
O método server.listen() pode ser chamado novamente se e somente se houve um erro durante a primeira chamada server.listen() ou server.close() foi chamado. Caso contrário, um erro ERR_SERVER_ALREADY_LISTEN será lançado.
Um dos erros mais comuns levantados ao ouvir é EADDRINUSE. Isso acontece quando outro servidor já está ouvindo na port/path/handle solicitada. Uma maneira de lidar com isso seria tentar novamente após um certo período de tempo:
server.on('error', (e) => {
if (e.code === 'EADDRINUSE') {
console.error('Address in use, retrying...');
setTimeout(() => {
server.close();
server.listen(PORT, HOST);
}, 1000);
}
});server.listen(handle[, backlog][, callback])
Adicionado em: v0.5.10
handle<Objeto>backlog<number> Parâmetro comum das funçõesserver.listen()callback<Function>- Retorna: <net.Server>
Inicia um servidor à espera de conexões em um determinado handle que já foi vinculado a uma porta, um socket de domínio Unix ou um pipe nomeado do Windows.
O objeto handle pode ser um servidor, um socket (qualquer coisa com um membro _handle subjacente) ou um objeto com um membro fd que seja um descritor de arquivo válido.
A escuta em um descritor de arquivo não é suportada no Windows.
server.listen(options[, callback])
[Histórico]
| Versão | Alterações |
|---|---|
| v23.1.0 | A opção reusePort é suportada. |
| v15.6.0 | O suporte ao AbortSignal foi adicionado. |
| v11.4.0 | A opção ipv6Only é suportada. |
| v0.11.14 | Adicionado em: v0.11.14 |
options<Objeto> Requerido. Suporta as seguintes propriedades:backlog<number> Parâmetro comum das funçõesserver.listen().exclusive<boolean> Padrão:falsehost<string>ipv6Only<boolean> Para servidores TCP, definiripv6Onlycomotruedesativará o suporte a pilha dupla, ou seja, vincular ao host::não fará com que0.0.0.0seja vinculado. Padrão:false.reusePort<boolean> Para servidores TCP, definirreusePortcomotruepermite que vários sockets no mesmo host se liguem à mesma porta. As conexões de entrada são distribuídas pelo sistema operacional aos sockets de escuta. Esta opção está disponível apenas em algumas plataformas, como Linux 3.9+, DragonFlyBSD 3.6+, FreeBSD 12.0+, Solaris 11.4 e AIX 7.2.5+. Padrão:false.path<string> Será ignorado seportfor especificado. Consulte Identificando caminhos para conexões IPC.port<number>readableAll<boolean> Para servidores IPC, torna o pipe legível para todos os usuários. Padrão:false.signal<AbortSignal> Um AbortSignal que pode ser usado para fechar um servidor de escuta.writableAll<boolean> Para servidores IPC, torna o pipe gravável para todos os usuários. Padrão:false.
callback<Function> functions.Retorna: <net.Server>
Se port for especificado, ele se comporta da mesma forma que server.listen([port[, host[, backlog]]][, callback]). Caso contrário, se path for especificado, ele se comporta da mesma forma que server.listen(path[, backlog][, callback]). Se nenhum deles for especificado, um erro será lançado.
Se exclusive for false (padrão), os workers do cluster usarão o mesmo handle subjacente, permitindo que as tarefas de tratamento de conexão sejam compartilhadas. Quando exclusive é true, o handle não é compartilhado e a tentativa de compartilhamento de porta resulta em um erro. Um exemplo de escuta em uma porta exclusiva é mostrado abaixo.
server.listen({
host: 'localhost',
port: 80,
exclusive: true,
});Quando exclusive é true e o handle subjacente é compartilhado, é possível que vários workers consultem um handle com diferentes backlogs. Nesse caso, o primeiro backlog passado para o processo mestre será usado.
Iniciar um servidor IPC como root pode fazer com que o caminho do servidor fique inacessível para usuários não privilegiados. Usar readableAll e writableAll tornará o servidor acessível para todos os usuários.
Se a opção signal estiver habilitada, chamar .abort() no AbortController correspondente é semelhante a chamar .close() no servidor:
const controller = new AbortController();
server.listen({
host: 'localhost',
port: 80,
signal: controller.signal,
});
// Mais tarde, quando você quiser fechar o servidor.
controller.abort();server.listen(path[, backlog][, callback])
Adicionado em: v0.1.90
path<string> Caminho que o servidor deve escutar. Veja Identificação de caminhos para conexões IPC.backlog<number> Parâmetro comum das funçõesserver.listen().callback<Function>.- Retorna: <net.Server>
Inicia um servidor IPC que escuta por conexões no path fornecido.
server.listen([port[, host[, backlog]]][, callback])
Adicionado em: v0.1.90
port<number>host<string>backlog<number> Parâmetro comum das funçõesserver.listen().callback<Function>.- Retorna: <net.Server>
Inicia um servidor TCP que escuta por conexões na port e host fornecidos.
Se port for omitido ou for 0, o sistema operacional atribuirá uma porta não utilizada arbitrária, que pode ser recuperada usando server.address().port após o evento 'listening' ter sido emitido.
Se host for omitido, o servidor aceitará conexões no endereço IPv6 não especificado (::) quando o IPv6 estiver disponível, ou no endereço IPv4 não especificado (0.0.0.0) caso contrário.
Na maioria dos sistemas operacionais, escutar o endereço IPv6 não especificado (::) pode fazer com que o net.Server também escute no endereço IPv4 não especificado (0.0.0.0).
server.listening
Adicionado em: v5.7.0
- <boolean> Indica se o servidor está ou não à escuta de conexões.
server.maxConnections
[Histórico]
| Versão | Alterações |
|---|---|
| v21.0.0 | Definir maxConnections para 0 derruba todas as conexões de entrada. Anteriormente, era interpretado como Infinity. |
| v0.2.0 | Adicionado em: v0.2.0 |
Quando o número de conexões atinge o limite de server.maxConnections:
Não é recomendado usar esta opção quando um socket é enviado para um filho com child_process.fork().
server.dropMaxConnection
Adicionado em: v23.1.0
Defina esta propriedade para true para começar a fechar as conexões quando o número de conexões atingir o limite [server.maxConnections][]. Esta configuração só é eficaz no modo de cluster.
server.ref()
Adicionado em: v0.9.1
- Retorna: <net.Server>
O oposto de unref(), chamar ref() num servidor previamente unref não permitirá que o programa termine se for o único servidor restante (o comportamento padrão). Se o servidor for ref chamar ref() novamente não terá efeito.
server.unref()
Adicionado em: v0.9.1
- Retorna: <net.Server>
Chamar unref() num servidor permitirá que o programa termine se este for o único servidor ativo no sistema de eventos. Se o servidor já estiver unref chamar unref() novamente não terá efeito.
Classe: net.Socket
Adicionado em: v0.3.4
- Estende: <stream.Duplex>
Esta classe é uma abstração de um socket TCP ou um endpoint IPC de streaming (usa named pipes no Windows e sockets de domínio Unix em outros casos). Também é um EventEmitter.
Um net.Socket pode ser criado pelo utilizador e usado diretamente para interagir com um servidor. Por exemplo, é retornado por net.createConnection(), para que o utilizador possa usá-lo para comunicar com o servidor.
Também pode ser criado pelo Node.js e passado para o utilizador quando uma conexão é recebida. Por exemplo, é passado para os listeners de um evento 'connection' emitido num net.Server, para que o utilizador possa usá-lo para interagir com o cliente.
new net.Socket([options])
[Histórico]
| Versão | Mudanças |
|---|---|
| v15.14.0 | Suporte para AbortSignal foi adicionado. |
| v12.10.0 | Adicionada a opção onread. |
| v0.3.4 | Adicionado em: v0.3.4 |
options<Object> As opções disponíveis são:allowHalfOpen<boolean> Se definido comofalse, o socket encerrará automaticamente o lado gravável quando o lado legível terminar. Vejanet.createServer()e o evento'end'para detalhes. Padrão:false.fd<number> Se especificado, envolve um socket existente com o descritor de arquivo fornecido, caso contrário, um novo socket será criado.onread<Object> Se especificado, os dados de entrada são armazenados em um únicobuffere passados para ocallbackfornecido quando os dados chegam ao socket. Isso fará com que a funcionalidade de streaming não forneça nenhum dado. O socket emitirá eventos como'error','end'e'close'como de costume. Métodos comopause()eresume()também se comportarão como esperado.buffer<Buffer> | <Uint8Array> | <Function> Ou um pedaço de memória reutilizável para usar para armazenar dados de entrada ou uma função que retorna tal.callback<Function> Esta função é chamada para cada pedaço de dados de entrada. Dois argumentos são passados para ela: o número de bytes gravados nobuffere uma referência aobuffer. Retornefalsedesta função parapause()implicitamente o socket. Esta função será executada no contexto global.readable<boolean> Permite leituras no socket quando umfdé passado, caso contrário, é ignorado. Padrão:false.signal<AbortSignal> Um sinal de Abort que pode ser usado para destruir o socket.writable<boolean> Permite gravações no socket quando umfdé passado, caso contrário, é ignorado. Padrão:false.
Retorna: <net.Socket>
Cria um novo objeto socket.
O socket recém-criado pode ser um socket TCP ou um ponto de extremidade IPC de streaming, dependendo do que ele connect() para.
Evento: 'close'
Adicionado em: v0.1.90
hadError<boolean>truese o socket teve um erro de transmissão.
Emitido quando o socket é totalmente fechado. O argumento hadError é um booleano que indica se o socket foi fechado devido a um erro de transmissão.
Evento: 'connect'
Adicionado em: v0.1.90
Emitido quando uma conexão de socket é estabelecida com sucesso. Veja net.createConnection().
Evento: 'connectionAttempt'
Adicionado em: v21.6.0, v20.12.0
ip<string> O IP ao qual o socket está tentando se conectar.port<number> A porta à qual o socket está tentando se conectar.family<number> A família do IP. Pode ser6para IPv6 ou4para IPv4.
Emitido quando uma nova tentativa de conexão é iniciada. Isso pode ser emitido várias vezes se o algoritmo de seleção automática de família estiver ativado em socket.connect(options).
Evento: 'connectionAttemptFailed'
Adicionado em: v21.6.0, v20.12.0
ip<string> O IP ao qual o socket tentou se conectar.port<number> A porta à qual o socket tentou se conectar.family<number> A família do IP. Pode ser6para IPv6 ou4para IPv4.error<Error> O erro associado à falha.
Emitido quando uma tentativa de conexão falhou. Isso pode ser emitido várias vezes se o algoritmo de seleção automática de família estiver ativado em socket.connect(options).
Evento: 'connectionAttemptTimeout'
Adicionado em: v21.6.0, v20.12.0
ip<string> O IP ao qual o socket tentou se conectar.port<number> A porta à qual o socket tentou se conectar.family<number> A família do IP. Pode ser6para IPv6 ou4para IPv4.
Emitido quando uma tentativa de conexão atinge o tempo limite. Isso só é emitido (e pode ser emitido várias vezes) se o algoritmo de seleção automática de família estiver habilitado em socket.connect(options).
Evento: 'data'
Adicionado em: v0.1.90
Emitido quando os dados são recebidos. O argumento data será um Buffer ou String. A codificação dos dados é definida por socket.setEncoding().
Os dados serão perdidos se não houver um listener quando um Socket emitir um evento 'data'.
Evento: 'drain'
Adicionado em: v0.1.90
Emitido quando o buffer de escrita se torna vazio. Pode ser usado para limitar os uploads.
Veja também: os valores de retorno de socket.write().
Evento: 'end'
Adicionado em: v0.1.90
Emitido quando a outra extremidade do socket sinaliza o fim da transmissão, terminando assim o lado legível do socket.
Por padrão (allowHalfOpen é false), o socket enviará um pacote de fim de transmissão de volta e destruirá seu descritor de arquivo assim que tiver gravado sua fila de escrita pendente. No entanto, se allowHalfOpen estiver definido como true, o socket não irá automaticamente end() seu lado gravável, permitindo que o usuário escreva quantidades arbitrárias de dados. O usuário deve chamar end() explicitamente para fechar a conexão (ou seja, enviando um pacote FIN de volta).
Evento: 'error'
Adicionado em: v0.1.90
Emitido quando ocorre um erro. O evento 'close' será chamado diretamente após este evento.
Evento: 'lookup'
[Histórico]
| Versão | Mudanças |
|---|---|
| v5.10.0 | O parâmetro host agora é suportado. |
| v0.11.3 | Adicionado em: v0.11.3 |
Emitido após resolver o nome do host, mas antes de conectar. Não aplicável a sockets Unix.
err<Error> | <null> O objeto de erro. Vejadns.lookup().address<string> O endereço IP.family<number> | <null> O tipo de endereço. Vejadns.lookup().host<string> O nome do host.
Evento: 'ready'
Adicionado em: v9.11.0
Emitido quando um socket está pronto para ser usado.
Acionado imediatamente após 'connect'.
Evento: 'timeout'
Adicionado em: v0.1.90
Emitido se o socket atinge o tempo limite por inatividade. Isso serve apenas para notificar que o socket está ocioso. O usuário deve fechar manualmente a conexão.
Veja também: socket.setTimeout().
socket.address()
[Histórico]
| Versão | Mudanças |
|---|---|
| v18.4.0 | A propriedade family agora retorna uma string em vez de um número. |
| v18.0.0 | A propriedade family agora retorna um número em vez de uma string. |
| v0.1.90 | Adicionado em: v0.1.90 |
- Retorna: <Object>
Retorna o address vinculado, o nome da family do endereço e a port do socket conforme relatado pelo sistema operacional: { port: 12346, family: 'IPv4', address: '127.0.0.1' }
socket.autoSelectFamilyAttemptedAddresses
Adicionado em: v19.4.0, v18.18.0
Esta propriedade está presente apenas se o algoritmo de autoseleção de família estiver habilitado em socket.connect(options) e é um array dos endereços que foram tentados.
Cada endereço é uma string no formato $IP:$PORT. Se a conexão foi bem-sucedida, o último endereço é aquele ao qual o socket está atualmente conectado.
socket.bufferSize
Adicionado em: v0.3.8
Obsoleto desde: v14.6.0
[Estável: 0 - Obsoleto]
Estável: 0 Estabilidade: 0 - Obsoleto: Use writable.writableLength em vez disso.
Esta propriedade mostra o número de caracteres em buffer para escrita. O buffer pode conter strings cujo comprimento após a codificação ainda não é conhecido. Portanto, este número é apenas uma aproximação do número de bytes no buffer.
net.Socket tem a propriedade de que socket.write() sempre funciona. Isso é para ajudar os usuários a começar a usar rapidamente. O computador nem sempre consegue acompanhar a quantidade de dados gravados em um socket. A conexão de rede pode simplesmente ser muito lenta. O Node.js irá internamente enfileirar os dados gravados em um socket e enviá-los pela rede quando for possível.
A consequência desse buffering interno é que a memória pode crescer. Os usuários que experimentam bufferSize grande ou crescente devem tentar "restringir" os fluxos de dados em seu programa com socket.pause() e socket.resume().
socket.bytesRead
Adicionado em: v0.5.3
A quantidade de bytes recebidos.
socket.bytesWritten
Adicionado em: v0.5.3
A quantidade de bytes enviados.
socket.connect()
Inicia uma conexão em um determinado socket.
Possíveis assinaturas:
socket.connect(options[, connectListener])socket.connect(path[, connectListener])para conexões IPC.socket.connect(port[, host][, connectListener])para conexões TCP.- Retorna: <net.Socket> O próprio socket.
Esta função é assíncrona. Quando a conexão é estabelecida, o evento 'connect' será emitido. Se houver um problema ao conectar, em vez de um evento 'connect', um evento 'error' será emitido com o erro passado para o listener 'error'. O último parâmetro connectListener, se fornecido, será adicionado como um listener para o evento 'connect' uma vez.
Esta função deve ser usada apenas para reconectar um socket após 'close' ter sido emitido ou, caso contrário, pode levar a um comportamento indefinido.
socket.connect(options[, connectListener])
[Histórico]
| Versão | Mudanças |
|---|---|
| v19.4.0 | O valor padrão para a opção autoSelectFamily pode ser alterado em tempo de execução usando setDefaultAutoSelectFamily ou através da opção de linha de comando --enable-network-family-autoselection. |
| v20.0.0, v18.18.0 | O valor padrão para a opção autoSelectFamily agora é true. O sinalizador CLI --enable-network-family-autoselection foi renomeado para --network-family-autoselection. O nome antigo agora é um alias, mas é desencorajado. |
| v19.3.0, v18.13.0 | Adicionada a opção autoSelectFamily. |
| v17.7.0, v16.15.0 | As opções noDelay, keepAlive e keepAliveInitialDelay são suportadas agora. |
| v6.0.0 | A opção hints agora assume o valor padrão de 0 em todos os casos. Anteriormente, na ausência da opção family, ela assumiria o valor padrão de `dns.ADDRCONFIG |
| v5.11.0 | A opção hints é suportada agora. |
| v0.1.90 | Adicionado em: v0.1.90 |
options<Objeto>connectListener<Função> Parâmetro comum dos métodossocket.connect(). Será adicionado como um listener para o evento'connect'uma vez.- Retorna: <net.Socket> O próprio socket.
Inicia uma conexão em um determinado socket. Normalmente, este método não é necessário, o socket deve ser criado e aberto com net.createConnection(). Use isso apenas ao implementar um Socket personalizado.
Para conexões TCP, as options disponíveis são:
autoSelectFamily<boolean>: Se definido comotrue, ele ativa um algoritmo de detecção automática de família que implementa superficialmente a seção 5 do RFC 8305. A opçãoallpassada para lookup é definida comotruee o socket tenta se conectar a todos os endereços IPv6 e IPv4 obtidos, em sequência, até que uma conexão seja estabelecida. O primeiro endereço AAAA retornado é tentado primeiro, depois o primeiro endereço A retornado, depois o segundo endereço AAAA retornado e assim por diante. Cada tentativa de conexão (exceto a última) recebe a quantidade de tempo especificada pela opçãoautoSelectFamilyAttemptTimeoutantes de expirar o tempo limite e tentar o próximo endereço. Ignorado se a opçãofamilynão for0ou selocalAddressestiver definido. Erros de conexão não são emitidos se pelo menos uma conexão for bem-sucedida. Se todas as tentativas de conexão falharem, um únicoAggregateErrorcom todas as tentativas com falha é emitido. Padrão:net.getDefaultAutoSelectFamily().autoSelectFamilyAttemptTimeout<number>: A quantidade de tempo em milissegundos para esperar que uma tentativa de conexão termine antes de tentar o próximo endereço ao usar a opçãoautoSelectFamily. Se definido como um número inteiro positivo menor que10, o valor10será usado em vez disso. Padrão:net.getDefaultAutoSelectFamilyAttemptTimeout().family<number>: Versão da pilha IP. Deve ser4,6ou0. O valor0indica que os endereços IPv4 e IPv6 são permitidos. Padrão:0.hints<number>dns.lookup()dicas opcionais.host<string> Host ao qual o socket deve se conectar. Padrão:'localhost'.keepAlive<boolean> Se definido comotrue, ele ativa a funcionalidade keep-alive no socket imediatamente após a conexão ser estabelecida, semelhante ao que é feito emsocket.setKeepAlive(). Padrão:false.keepAliveInitialDelay<number> Se definido como um número positivo, ele define o atraso inicial antes que a primeira sonda keepalive seja enviada em um socket ocioso. Padrão:0.localAddress<string> Endereço local do qual o socket deve se conectar.localPort<number> Porta local da qual o socket deve se conectar.lookup<Função> Função de pesquisa personalizada. Padrão:dns.lookup().noDelay<boolean> Se definido comotrue, ele desativa o uso do algoritmo de Nagle imediatamente após o socket ser estabelecido. Padrão:false.port<number> Obrigatório. Porta à qual o socket deve se conectar.blockList<net.BlockList>blockListpode ser usado para desativar o acesso de saída a endereços IP, intervalos de IP ou sub-redes IP específicos.
Para conexões IPC, as options disponíveis são:
path<string> Obrigatório. Caminho ao qual o cliente deve se conectar. Veja Identificando caminhos para conexões IPC. Se fornecido, as opções específicas do TCP acima são ignoradas.
socket.connect(path[, connectListener])
path<string> Caminho ao qual o cliente deve se conectar. Consulte Identificando caminhos para conexões IPC.connectListener<Function> Parâmetro comum dos métodossocket.connect(). Será adicionado como um listener para o evento'connect'uma vez.- Retorna: <net.Socket> O próprio socket.
Inicia uma conexão IPC no socket fornecido.
Alias para socket.connect(options[, connectListener]) chamado com { path: path } como options.
socket.connect(port[, host][, connectListener])
Adicionado em: v0.1.90
port<number> Porta à qual o cliente deve se conectar.host<string> Host ao qual o cliente deve se conectar.connectListener<Function> Parâmetro comum dos métodossocket.connect(). Será adicionado como um listener para o evento'connect'uma vez.- Retorna: <net.Socket> O próprio socket.
Inicia uma conexão TCP no socket fornecido.
Alias para socket.connect(options[, connectListener]) chamado com {port: port, host: host} como options.
socket.connecting
Adicionado em: v6.1.0
Se true, socket.connect(options[, connectListener]) foi chamado e ainda não terminou. Ele permanecerá true até que o socket seja conectado, então é definido como false e o evento 'connect' é emitido. Observe que o callback socket.connect(options[, connectListener]) é um listener para o evento 'connect'.
socket.destroy([error])
Adicionado em: v0.1.90
error<Object>- Retorna: <net.Socket>
Garante que não ocorra mais atividade de I/O neste socket. Destrói o fluxo e fecha a conexão.
Veja writable.destroy() para mais detalhes.
socket.destroyed
- <boolean> Indica se a conexão está destruída ou não. Uma vez que uma conexão é destruída, nenhum dado adicional pode ser transferido usando-a.
Veja writable.destroyed para mais detalhes.
socket.destroySoon()
Adicionado em: v0.3.4
Destrói o socket após todos os dados serem escritos. Se o evento 'finish' já foi emitido, o socket é destruído imediatamente. Se o socket ainda é gravável, ele implicitamente chama socket.end().
socket.end([data[, encoding]][, callback])
Adicionado em: v0.1.90
data<string> | <Buffer> | <Uint8Array>encoding<string> Usado apenas quando os dados sãostring. Padrão:'utf8'.callback<Function> Callback opcional para quando o socket é finalizado.- Retorna: <net.Socket> O próprio socket.
Fecha o socket pela metade. Ou seja, ele envia um pacote FIN. É possível que o servidor ainda envie alguns dados.
Veja writable.end() para mais detalhes.
socket.localAddress
Adicionado em: v0.9.6
A representação em string do endereço IP local no qual o cliente remoto está se conectando. Por exemplo, em um servidor que está ouvindo em '0.0.0.0', se um cliente se conectar em '192.168.1.1', o valor de socket.localAddress seria '192.168.1.1'.
socket.localPort
Adicionado em: v0.9.6
A representação numérica da porta local. Por exemplo, 80 ou 21.
socket.localFamily
Adicionado em: v18.8.0, v16.18.0
A representação em string da família de IP local. 'IPv4' ou 'IPv6'.
socket.pause()
- Retorna: <net.Socket> O próprio socket.
Pausa a leitura de dados. Ou seja, eventos 'data' não serão emitidos. Útil para diminuir a velocidade de um upload.
socket.pending
Adicionado em: v11.2.0, v10.16.0
Isto é true se o socket ainda não estiver conectado, seja porque .connect() ainda não foi chamado ou porque ainda está em processo de conexão (veja socket.connecting).
socket.ref()
Adicionado em: v0.9.1
- Retorna: <net.Socket> O próprio socket.
O oposto de unref(), chamar ref() em um socket previamente unref não permitirá que o programa saia se for o único socket restante (o comportamento padrão). Se o socket for ref, chamar ref novamente não terá efeito.
socket.remoteAddress
Adicionado em: v0.5.10
A representação em string do endereço IP remoto. Por exemplo, '74.125.127.100' ou '2001:4860:a005::68'. O valor pode ser undefined se o socket for destruído (por exemplo, se o cliente se desconectar).
socket.remoteFamily
Adicionado em: v0.11.14
A representação em string da família de IP remota. 'IPv4' ou 'IPv6'. O valor pode ser undefined se o socket for destruído (por exemplo, se o cliente se desconectar).
socket.remotePort
Adicionado em: v0.5.10
A representação numérica da porta remota. Por exemplo, 80 ou 21. O valor pode ser undefined se o socket for destruído (por exemplo, se o cliente desconectar).
socket.resetAndDestroy()
Adicionado em: v18.3.0, v16.17.0
- Retorna: <net.Socket>
Fecha a conexão TCP enviando um pacote RST e destrói o stream. Se este socket TCP estiver em status de conexão, ele enviará um pacote RST e destruirá este socket TCP assim que estiver conectado. Caso contrário, ele chamará socket.destroy com um erro ERR_SOCKET_CLOSED. Se este não for um socket TCP (por exemplo, um pipe), chamar este método lançará imediatamente um erro ERR_INVALID_HANDLE_TYPE.
socket.resume()
- Retorna: <net.Socket> O próprio socket.
Retoma a leitura após uma chamada para socket.pause().
socket.setEncoding([encoding])
Adicionado em: v0.1.90
encoding<string>- Retorna: <net.Socket> O próprio socket.
Define a codificação para o socket como um Readable Stream. Veja readable.setEncoding() para mais informações.
socket.setKeepAlive([enable][, initialDelay])
[Histórico]
| Versão | Mudanças |
|---|---|
| v13.12.0, v12.17.0 | Novos padrões para as opções de socket TCP_KEEPCNT e TCP_KEEPINTVL foram adicionados. |
| v0.1.92 | Adicionado em: v0.1.92 |
enable<boolean> Padrão:falseinitialDelay<number> Padrão:0- Retorna: <net.Socket> O próprio socket.
Habilita/desabilita a funcionalidade keep-alive e, opcionalmente, define o atraso inicial antes que a primeira sonda keepalive seja enviada em um socket ocioso.
Defina initialDelay (em milissegundos) para definir o atraso entre o último pacote de dados recebido e a primeira sonda keepalive. Definir 0 para initialDelay deixará o valor inalterado em relação à configuração padrão (ou anterior).
Habilitar a funcionalidade keep-alive definirá as seguintes opções de socket:
SO_KEEPALIVE=1TCP_KEEPIDLE=initialDelayTCP_KEEPCNT=10TCP_KEEPINTVL=1
socket.setNoDelay([noDelay])
Adicionado em: v0.1.90
noDelay<boolean> Padrão:true- Retorna: <net.Socket> O próprio socket.
Habilita/desabilita o uso do algoritmo de Nagle.
Quando uma conexão TCP é criada, ela terá o algoritmo de Nagle habilitado.
O algoritmo de Nagle atrasa os dados antes de serem enviados pela rede. Ele tenta otimizar a taxa de transferência em detrimento da latência.
Passar true para noDelay ou não passar um argumento desabilitará o algoritmo de Nagle para o socket. Passar false para noDelay habilitará o algoritmo de Nagle.
socket.setTimeout(timeout[, callback])
[Histórico]
| Versão | Mudanças |
|---|---|
| v18.0.0 | Passar um callback inválido para o argumento callback agora lança ERR_INVALID_ARG_TYPE em vez de ERR_INVALID_CALLBACK. |
| v0.1.90 | Adicionado em: v0.1.90 |
timeout<number>callback<Function>- Retorna: <net.Socket> O próprio socket.
Define o socket para timeout após timeout milissegundos de inatividade no socket. Por padrão, net.Socket não tem um timeout.
Quando um timeout ocioso é acionado, o socket receberá um evento 'timeout', mas a conexão não será interrompida. O usuário deve chamar manualmente socket.end() ou socket.destroy() para finalizar a conexão.
socket.setTimeout(3000);
socket.on('timeout', () => {
console.log('timeout do socket');
socket.end();
});Se timeout for 0, então o timeout ocioso existente é desabilitado.
O parâmetro opcional callback será adicionado como um listener único para o evento 'timeout'.
socket.timeout
Adicionado em: v10.7.0
O tempo limite do socket em milissegundos, conforme definido por socket.setTimeout(). É undefined se um tempo limite não foi definido.
socket.unref()
Adicionado em: v0.9.1
- Retorna: <net.Socket> O próprio socket.
Chamar unref() em um socket permitirá que o programa seja encerrado se este for o único socket ativo no sistema de eventos. Se o socket já estiver unrefed, chamar unref() novamente não terá efeito.
socket.write(data[, encoding][, callback])
Adicionado em: v0.1.90
data<string> | <Buffer> | <Uint8Array>encoding<string> Usado apenas quando os dados sãostring. Padrão:utf8.callback<Function>- Retorna: <boolean>
Envia dados no socket. O segundo parâmetro especifica a codificação no caso de uma string. O padrão é a codificação UTF8.
Retorna true se todos os dados foram descarregados com sucesso para o buffer do kernel. Retorna false se todos ou parte dos dados foram enfileirados na memória do usuário. 'drain' será emitido quando o buffer estiver livre novamente.
O parâmetro opcional callback será executado quando os dados forem finalmente gravados, o que pode não ser imediatamente.
Veja o método write() do stream Writable para mais informações.
socket.readyState
Adicionado em: v0.5.0
Esta propriedade representa o estado da conexão como uma string.
- Se o stream estiver se conectando,
socket.readyStateéopening. - Se o stream for legível e gravável, é
open. - Se o stream for legível e não gravável, é
readOnly. - Se o stream não for legível e gravável, é
writeOnly.
net.connect()
Aliases para net.createConnection().
Possíveis assinaturas:
net.connect(options[, connectListener])net.connect(path[, connectListener])para conexões IPC.net.connect(port[, host][, connectListener])para conexões TCP.
net.connect(options[, connectListener])
Adicionado em: v0.7.0
options<Object>connectListener<Function>- Retorna: <net.Socket>
Alias para net.createConnection(options[, connectListener]).
net.connect(path[, connectListener])
Adicionado em: v0.1.90
path<string>connectListener<Function>- Retorna: <net.Socket>
Alias para net.createConnection(path[, connectListener]).
net.connect(port[, host][, connectListener])
Adicionado em: v0.1.90
port<number>host<string>connectListener<Function>- Retorna: <net.Socket>
Alias para net.createConnection(port[, host][, connectListener]).
net.createConnection()
Uma função de fábrica, que cria um novo net.Socket, inicia imediatamente a conexão com socket.connect() e, em seguida, retorna o net.Socket que inicia a conexão.
Quando a conexão é estabelecida, um evento 'connect' será emitido no socket retornado. O último parâmetro connectListener, se fornecido, será adicionado como um listener para o evento 'connect' uma vez.
Assinaturas possíveis:
net.createConnection(options[, connectListener])net.createConnection(path[, connectListener])para conexões IPC.net.createConnection(port[, host][, connectListener])para conexões TCP.
A função net.connect() é um alias para esta função.
net.createConnection(options[, connectListener])
Adicionado em: v0.1.90
options<Object> Obrigatório. Será passado para a chamadanew net.Socket([options])e para o métodosocket.connect(options[, connectListener]).connectListener<Function> Parâmetro comum das funçõesnet.createConnection(). Se fornecido, será adicionado como um listener para o evento'connect'no socket retornado uma vez.- Retorna: <net.Socket> O socket recém-criado usado para iniciar a conexão.
Para opções disponíveis, consulte new net.Socket([options]) e socket.connect(options[, connectListener]).
Opções adicionais:
timeout<number> Se definido, será usado para chamarsocket.setTimeout(timeout)após a criação do socket, mas antes de iniciar a conexão.
A seguir, um exemplo de um cliente do servidor de eco descrito na seção net.createServer():
import net from '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');
});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');
});Para conectar no socket /tmp/echo.sock:
const client = net.createConnection({ path: '/tmp/echo.sock' });A seguir, um exemplo de um cliente usando a opção port e onread. Neste caso, a opção onread será usada apenas para chamar new net.Socket([options]) e a opção port será usada para chamar socket.connect(options[, connectListener]).
import net from 'node:net';
import { Buffer } from 'node:buffer';
net.createConnection({
port: 8124,
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));
},
},
});const net = require('node:net');
net.createConnection({
port: 8124,
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));
},
},
});net.createConnection(path[, connectListener])
Adicionado em: v0.1.90
path<string> Caminho ao qual o socket deve se conectar. Será passado parasocket.connect(path[, connectListener]). Veja Identificação de caminhos para conexões IPC.connectListener<Function> Parâmetro comum das funçõesnet.createConnection(), um listener "once" para o evento'connect'no socket iniciador. Será passado parasocket.connect(path[, connectListener]).- Retorna: <net.Socket> O socket recém-criado usado para iniciar a conexão.
Inicia uma conexão IPC.
Esta função cria um novo net.Socket com todas as opções definidas como padrão, inicia imediatamente a conexão com socket.connect(path[, connectListener]), então retorna o net.Socket que inicia a conexão.
net.createConnection(port[, host][, connectListener])
Adicionado em: v0.1.90
port<number> Porta à qual o socket deve se conectar. Será passado parasocket.connect(port[, host][, connectListener]).host<string> Host ao qual o socket deve se conectar. Será passado parasocket.connect(port[, host][, connectListener]). Padrão:'localhost'.connectListener<Function> Parâmetro comum das funçõesnet.createConnection(), um listener "once" para o evento'connect'no socket iniciador. Será passado parasocket.connect(port[, host][, connectListener]).- Retorna: <net.Socket> O socket recém-criado usado para iniciar a conexão.
Inicia uma conexão TCP.
Esta função cria um novo net.Socket com todas as opções definidas como padrão, inicia imediatamente a conexão com socket.connect(port[, host][, connectListener]), então retorna o net.Socket que inicia a conexão.
net.createServer([options][, connectionListener])
[Histórico]
| Versão | Mudanças |
|---|---|
| v20.1.0, v18.17.0 | A opção highWaterMark agora é suportada. |
| v17.7.0, v16.15.0 | As opções noDelay, keepAlive e keepAliveInitialDelay agora são suportadas. |
| v0.5.0 | Adicionado em: v0.5.0 |
options<Objeto>allowHalfOpen<boolean> Se definido comofalse, o socket finalizará automaticamente o lado gravável quando o lado legível terminar. Padrão:false.highWaterMark<number> Opcionalmente, substituireadableHighWaterMarkewritableHighWaterMarkde todos osnet.Sockets. Padrão: Vejastream.getDefaultHighWaterMark().keepAlive<boolean> Se definido comotrue, habilita a funcionalidade keep-alive no socket imediatamente após o recebimento de uma nova conexão de entrada, de forma semelhante ao que é feito emsocket.setKeepAlive(). Padrão:false.keepAliveInitialDelay<number> Se definido como um número positivo, define o atraso inicial antes que a primeira sonda keepalive seja enviada em um socket ocioso. Padrão:0.noDelay<boolean> Se definido comotrue, desativa o uso do algoritmo de Nagle imediatamente após o recebimento de uma nova conexão de entrada. Padrão:false.pauseOnConnect<boolean> Indica se o socket deve ser pausado em conexões de entrada. Padrão:false.blockList<net.BlockList>blockListpode ser usado para desabilitar o acesso de entrada a endereços IP, intervalos de IP ou sub-redes IP específicos. Isso não funciona se o servidor estiver atrás de um proxy reverso, NAT, etc., porque o endereço verificado em relação à lista de bloqueio é o endereço do proxy ou aquele especificado pelo NAT.
connectionListener<Function> Definido automaticamente como um listener para o evento'connection'.Retorna: <net.Server>
Cria um novo servidor TCP ou IPC.
Se allowHalfOpen for definido como true, quando a outra extremidade do socket sinalizar o fim da transmissão, o servidor só enviará de volta o fim da transmissão quando socket.end() for explicitamente chamado. Por exemplo, no contexto do TCP, quando um pacote FIN é recebido, um pacote FIN é enviado de volta somente quando socket.end() é explicitamente chamado. Até então, a conexão está meio fechada (não legível, mas ainda gravável). Veja o evento 'end' e RFC 1122 (seção 4.2.2.13) para obter mais informações.
Se pauseOnConnect for definido como true, o socket associado a cada conexão de entrada será pausado e nenhum dado será lido de seu manipulador. Isso permite que as conexões sejam passadas entre os processos sem que nenhum dado seja lido pelo processo original. Para começar a ler dados de um socket pausado, chame socket.resume().
O servidor pode ser um servidor TCP ou um servidor IPC, dependendo de a que ele listen().
Aqui está um exemplo de um servidor de eco TCP que escuta conexões na porta 8124:
import net from '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');
});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');
});Teste isso usando telnet:
telnet localhost 8124Para escutar no socket /tmp/echo.sock:
server.listen('/tmp/echo.sock', () => {
console.log('server bound');
});Use nc para se conectar a um servidor de socket de domínio Unix:
nc -U /tmp/echo.socknet.getDefaultAutoSelectFamily()
Adicionado em: v19.4.0
Obtém o valor padrão atual da opção autoSelectFamily de socket.connect(options). O valor padrão inicial é true, a menos que a opção de linha de comando --no-network-family-autoselection seja fornecida.
- Retorna: <boolean> O valor padrão atual da opção
autoSelectFamily.
net.setDefaultAutoSelectFamily(value)
Adicionado em: v19.4.0
Define o valor padrão da opção autoSelectFamily de socket.connect(options).
value<boolean> O novo valor padrão. O valor padrão inicial étrue, a menos que a opção de linha de comando--no-network-family-autoselectionseja fornecida.
net.getDefaultAutoSelectFamilyAttemptTimeout()
Adicionado em: v19.8.0, v18.18.0
Obtém o valor padrão atual da opção autoSelectFamilyAttemptTimeout de socket.connect(options). O valor padrão inicial é 250 ou o valor especificado por meio da opção de linha de comando --network-family-autoselection-attempt-timeout.
- Retorna: <number> O valor padrão atual da opção
autoSelectFamilyAttemptTimeout.
net.setDefaultAutoSelectFamilyAttemptTimeout(value)
Adicionado em: v19.8.0, v18.18.0
Define o valor padrão da opção autoSelectFamilyAttemptTimeout de socket.connect(options).
value<number> O novo valor padrão, que deve ser um número positivo. Se o número for menor que10, o valor10será usado em vez disso. O valor padrão inicial é250ou o valor especificado por meio da opção de linha de comando--network-family-autoselection-attempt-timeout.
net.isIP(input)
Adicionado em: v0.3.0
Retorna 6 se input for um endereço IPv6. Retorna 4 se input for um endereço IPv4 em notação decimal pontilhada sem zeros à esquerda. Caso contrário, retorna 0.
net.isIP('::1'); // retorna 6
net.isIP('127.0.0.1'); // retorna 4
net.isIP('127.000.000.001'); // retorna 0
net.isIP('127.0.0.1/24'); // retorna 0
net.isIP('fhqwhgads'); // retorna 0net.isIPv4(input)
Adicionado em: v0.3.0
Retorna true se input for um endereço IPv4 em notação decimal pontilhada sem zeros à esquerda. Caso contrário, retorna false.
net.isIPv4('127.0.0.1'); // retorna true
net.isIPv4('127.000.000.001'); // retorna false
net.isIPv4('127.0.0.1/24'); // retorna false
net.isIPv4('fhqwhgads'); // retorna falsenet.isIPv6(input)
Adicionado em: v0.3.0
Retorna true se input for um endereço IPv6. Caso contrário, retorna false.
net.isIPv6('::1'); // retorna true
net.isIPv6('fhqwhgads'); // retorna false