Node.js - Módulo de rede

Node.js netmódulo é usado para criar servidores e clientes. Este módulo fornece um wrapper de rede assíncrono e pode ser importado usando a seguinte sintaxe.

var net = require("net")

Métodos

Sr. Não. Método e Descrição
1

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

Cria um novo servidor TCP. O argumento connectionListener é definido automaticamente como um ouvinte para o evento 'conexão'.

2

net.connect(options[, connectionListener])

Um método de fábrica, que retorna um novo 'net.Socket' e se conecta ao endereço e porta fornecidos.

3

net.createConnection(options[, connectionListener])

Um método de fábrica, que retorna um novo 'net.Socket' e se conecta ao endereço e porta fornecidos.

4

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

Cria uma conexão TCP para a porta no host. Se host for omitido, 'localhost' será assumido. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'.

5

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

Cria uma conexão TCP para a porta no host. Se host for omitido, 'localhost' será assumido. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'.

6

net.connect(path[, connectListener])

Cria uma conexão de socket Unix para o caminho. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'.

7

net.createConnection(path[, connectListener])

Cria uma conexão de socket Unix para o caminho. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'.

8

net.isIP(input)

Testa se a entrada é um endereço IP. Retorna 0 para strings inválidas, 4 para endereços IP da versão 4 e 6 para endereços IP da versão 6.

9

net.isIPv4(input)

Retorna verdadeiro se a entrada for um endereço IP da versão 4; caso contrário, retorna falso.

10

net.isIPv6(input)

Retorna verdadeiro se a entrada for um endereço IP da versão 6; caso contrário, retorna falso.

Classe - net.Server

Esta classe é usada para criar um servidor TCP ou local.

Métodos

Sr. Não. Método e Descrição
1

server.listen(port[, host][, backlog][, callback])

Comece a aceitar conexões na porta e no host especificados. Se o host for omitido, o servidor aceitará conexões direcionadas a qualquer endereço IPv4 (INADDR_ANY). Um valor de porta igual a zero atribuirá uma porta aleatória.

2

server.listen(path[, callback])

Inicie um servidor de soquete local ouvindo conexões no caminho fornecido.

3

server.listen(handle[, callback])

O objeto identificador pode ser definido como um servidor ou soquete (qualquer coisa com um membro _handle subjacente) ou um objeto {fd: <n>}. Isso fará com que o servidor aceite conexões no identificador especificado, mas presume-se que o descritor de arquivo ou identificador já foi vinculado a uma porta ou soquete de domínio. Ouvir em um descritor de arquivo não é compatível com o Windows.

4

server.listen(options[, callback])

As propriedades das opções de porta, host e lista de pendências, bem como a função de retorno de chamada opcional, se comportam como em uma chamada para server.listen (porta, [host], [lista de pendências], [retorno de chamada]). Como alternativa, a opção de caminho pode ser usada para especificar um soquete UNIX.

5

server.close([callback])

Finalmente fechado quando todas as conexões são encerradas e o servidor emite um evento 'close'.

6

server.address()

Retorna o endereço vinculado, o nome da família do endereço e a porta do servidor, conforme relatado pelo sistema operacional.

7

server.unref()

Chamar unref em um servidor permitirá que o programa saia se este for o único servidor ativo no sistema de eventos. Se o servidor já estiver unrefd, chamar unref novamente não terá efeito.

8

server.ref()

Ao contrário de unref, chamar ref em um servidor anteriormente não refd não deixará o programa sair se for o único servidor restante (o comportamento padrão). Se o servidor for refd, chamar o ref novamente não terá efeito.

9

server.getConnections(callback)

Obtenha de maneira assíncrona o número de conexões simultâneas no servidor. Funciona quando os soquetes são enviados para garfos. O retorno de chamada deve ter dois argumentos err e contar.

Eventos

Sr. Não. Eventos e Descrição
1

listening

Emitido quando o servidor foi vinculado após chamar server.listen.

2

connection

Emitido quando uma nova conexão é feita. Objeto de soquete, o objeto de conexão está disponível para o manipulador de eventos. Socket é uma instância de net.Socket.

3

close

Emitido quando o servidor fecha. Observe que, se houver conexões, esse evento não será emitido até que todas as conexões sejam encerradas.

4

error

Emitido quando ocorre um erro. O evento 'fechar' será chamado diretamente após este evento.

Classe - net.Socket

Este objeto é uma abstração de um TCP ou socket local. As instâncias net.Socket implementam uma interface Stream duplex. Eles podem ser criados pelo usuário e usados ​​como um cliente (com connect ()) ou podem ser criados pelo Node e passados ​​para o usuário através do evento 'conexão' de um servidor.

Eventos

net.Socket é um eventEmitter e emite os seguintes eventos.

Sr. Não. Eventos e Descrição
1

lookup

Emitido após resolver o nome do host, mas antes de conectar. Não aplicável a soquetes UNIX.

2

connect

Emitido quando uma conexão de soquete é estabelecida com sucesso.

3

data

Emitido quando os dados são recebidos. Os dados do argumento serão um Buffer ou String. A codificação dos dados é definida por socket.setEncoding ().

4

end

Emitido quando a outra extremidade do soquete envia um pacote FIN.

5

timeout

Emitido se o soquete atingir o tempo limite de inatividade. Isso é apenas para notificar que o soquete está ocioso. O usuário deve fechar manualmente a conexão.

6

drain

Emitido quando o buffer de gravação fica vazio. Pode ser usado para acelerar uploads.

7

error

Emitido quando ocorre um erro. O evento 'fechar' será chamado diretamente após este evento.

8

close

Emitido assim que o encaixe estiver totalmente fechado. O argumento had_error é um booleano que indica se o socket foi fechado devido a um erro de transmissão.

Propriedades

net.Socket fornece muitas propriedades úteis para obter melhor controle sobre as interações de soquete.

Sr. Não. Descrição da Propriedade
1

socket.bufferSize

Esta propriedade mostra o número de caracteres atualmente armazenados em buffer para serem gravados.

2

socket.remoteAddress

A representação de string do endereço IP remoto. Por exemplo, '74 .125.127.100 'ou' 2001: 4860: a005 :: 68 '.

3

socket.remoteFamily

A representação de string da família de IPs remotos. 'IPv4' ou 'IPv6'.

4

socket.remotePort

A representação numérica da porta remota. Por exemplo, 80 ou 21.

5

socket.localAddress

A representação de string do endereço IP local ao qual o cliente remoto está se conectando. Por exemplo, se você estiver ouvindo em '0.0.0.0' e o cliente se conectar em '192.168.1.1', o valor será '192.168.1.1'.

6

socket.localPort

A representação numérica da porta local. Por exemplo, 80 ou 21.

7

socket.bytesRead

A quantidade de bytes recebidos.

8

socket.bytesWritten

A quantidade de bytes enviados.

Métodos

Sr. Não. Método e Descrição
1

new net.Socket([options])

Construa um novo objeto de socket.

2

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

Abre a conexão para um determinado soquete. Se a porta e o host forem fornecidos, o soquete será aberto como um soquete TCP; se o host for omitido, será assumido o localhost. Se um caminho for fornecido, o soquete será aberto como um soquete Unix para esse caminho.

3

socket.connect(path[, connectListener])

Abre a conexão para um determinado soquete. Se a porta e o host forem fornecidos, o soquete será aberto como um soquete TCP; se o host for omitido, será assumido o localhost. Se um caminho for fornecido, o soquete será aberto como um soquete Unix para esse caminho.

4

socket.setEncoding([encoding])

Defina a codificação do soquete como um fluxo legível.

5

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

Envia dados no soquete. O segundo parâmetro especifica a codificação no caso de uma string - o padrão é a codificação UTF8.

6

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

Fecha o soquete pela metade, ou seja, ele envia um pacote FIN. É possível que o servidor ainda envie alguns dados.

7

socket.destroy()

Garante que nenhuma atividade de E / S ocorra neste soquete. Necessário apenas em caso de erros (erro de análise ou algo assim).

8

socket.pause()

Pausa a leitura dos dados. Ou seja, eventos de 'dados' não serão emitidos. Útil para reduzir um upload.

9

socket.resume()

Retoma a leitura após uma chamada para pausar ().

10

socket.setTimeout(timeout[, callback])

Define o tempo limite do soquete após o tempo limite em milissegundos de inatividade no soquete. Por padrão, net.Socket não tem um tempo limite.

11

socket.setNoDelay([noDelay])

Desativa o algoritmo Nagle. Por padrão, as conexões TCP usam o algoritmo Nagle, armazenam os dados em buffer antes de enviá-los. Configurar true para noDelay irá disparar dados imediatamente toda vez que socket.write () for chamado. O padrão noDelay é verdadeiro.

12

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

Habilite / desabilite a funcionalidade keep-alive e, opcionalmente, defina o atraso inicial antes que o primeiro probe keep-alive seja enviado em um soquete ocioso. ativar os padrões para falso.

13

socket.address()

Retorna o endereço vinculado, o nome da família do endereço e a porta do soquete conforme relatado pelo sistema operacional. Retorna um objeto com três propriedades, por exemplo, {port: 12346, family: 'IPv4', address: '127.0.0.1'}.

14

socket.unref()

Chamar unref em um socket permitirá que o programa saia se este for o único socket ativo no sistema de eventos. Se o soquete já não tiver sido refd, chamar unref novamente não terá efeito.

15

socket.ref()

Ao contrário de unref, chamar ref em um soquete anteriormente não refd não permitirá que o programa saia se for o único soquete restante (o comportamento padrão). Se o socket for refd, chamar ref novamente não terá efeito.

Exemplo

Crie um arquivo js chamado server.js com o seguinte código -

Arquivo: server.js

var net = require('net');
var server = net.createServer(function(connection) { 
   console.log('client connected');
   
   connection.on('end', function() {
      console.log('client disconnected');
   });
   
   connection.write('Hello World!\r\n');
   connection.pipe(connection);
});

server.listen(8080, function() { 
   console.log('server is listening');
});

Agora execute o server.js para ver o resultado -

$ node server.js

Verifique a saída.

server is listening

Crie um arquivo js chamado client.js com o seguinte código -

File: client.js

var net = require('net');
var client = net.connect({port: 8080}, function() {
   console.log('connected to server!');  
});

client.on('data', function(data) {
   console.log(data.toString());
   client.end();
});

client.on('end', function() { 
   console.log('disconnected from server');
});

Agora execute o client.js de outro terminal para ver o resultado -

$ node client.js

Verifique a saída.

connected to server!
Hello World!

disconnected from server

Verifique a saída no terminal em que server.js está sendo executado.

server is listening
client connected
client disconnected