Node.js - Module réseau
Node.js netLe module est utilisé pour créer à la fois des serveurs et des clients. Ce module fournit un wrapper réseau asynchrone et il peut être importé à l'aide de la syntaxe suivante.
var net = require("net")
Méthodes
N ° Sr. | Méthode et description |
---|---|
1 | net.createServer([options][, connectionListener]) Crée un nouveau serveur TCP. L'argument connectionListener est automatiquement défini comme écouteur pour l'événement 'connection'. |
2 | net.connect(options[, connectionListener]) Une méthode de fabrique, qui renvoie un nouveau 'net.Socket' et se connecte à l'adresse et au port fournis. |
3 | net.createConnection(options[, connectionListener]) Une méthode de fabrique, qui renvoie un nouveau 'net.Socket' et se connecte à l'adresse et au port fournis. |
4 | net.connect(port[, host][, connectListener]) Crée une connexion TCP au port sur l'hôte. Si l'hôte est omis, 'localhost' sera utilisé. Le paramètre connectListener sera ajouté en tant qu'écouteur pour l'événement 'connect'. C'est une méthode de fabrique qui renvoie un nouveau 'net.Socket'. |
5 | net.createConnection(port[, host][, connectListener]) Crée une connexion TCP au port sur l'hôte. Si l'hôte est omis, 'localhost' sera utilisé. Le paramètre connectListener sera ajouté en tant qu'écouteur pour l'événement 'connect'. C'est une méthode de fabrique qui renvoie un nouveau 'net.Socket'. |
6 | net.connect(path[, connectListener]) Crée une connexion socket Unix au chemin. Le paramètre connectListener sera ajouté en tant qu'écouteur pour l'événement 'connect'. C'est une méthode de fabrique qui renvoie un nouveau 'net.Socket'. |
sept | net.createConnection(path[, connectListener]) Crée une connexion socket Unix au chemin. Le paramètre connectListener sera ajouté en tant qu'écouteur pour l'événement 'connect'. C'est une méthode de fabrique qui renvoie un nouveau 'net.Socket'. |
8 | net.isIP(input) Teste si l'entrée est une adresse IP. Renvoie 0 pour les chaînes non valides, 4 pour les adresses IP version 4 et 6 pour les adresses IP version 6. |
9 | net.isIPv4(input) Renvoie true si l'entrée est une adresse IP de version 4, sinon renvoie false. |
dix | net.isIPv6(input) Renvoie true si l'entrée est une adresse IP de version 6, sinon renvoie false. |
Classe - net.Server
Cette classe est utilisée pour créer un serveur TCP ou local.
Méthodes
N ° Sr. | Méthode et description |
---|---|
1 | server.listen(port[, host][, backlog][, callback]) Commencez à accepter les connexions sur le port et l'hôte spécifiés. Si l'hôte est omis, le serveur acceptera les connexions dirigées vers n'importe quelle adresse IPv4 (INADDR_ANY). Une valeur de port de zéro attribuera un port aléatoire. |
2 | server.listen(path[, callback]) Démarrez un serveur socket local à l'écoute des connexions sur le chemin donné. |
3 | server.listen(handle[, callback]) L'objet handle peut être défini sur un serveur ou un socket (tout ce qui a un membre _handle sous-jacent), ou sur un objet {fd: <n>}. Cela obligera le serveur à accepter les connexions sur le handle spécifié, mais il est présumé que le descripteur de fichier ou le handle a déjà été lié à un port ou à un socket de domaine. L'écoute sur un descripteur de fichier n'est pas prise en charge sous Windows. |
4 | server.listen(options[, callback]) Les propriétés de port, d'hôte et de backlog des options, ainsi que la fonction de rappel optionnelle, se comportent comme elles le font lors d'un appel à server.listen (port, [host], [backlog], [callback]). Alternativement, l'option path peut être utilisée pour spécifier un socket UNIX. |
5 | server.close([callback]) Finalement fermé lorsque toutes les connexions sont terminées et que le serveur émet un événement «close». |
6 | server.address() Renvoie l'adresse liée, le nom de la famille d'adresses et le port du serveur comme indiqué par le système d'exploitation. |
sept | server.unref() L'appel de unref sur un serveur permettra au programme de se fermer s'il s'agit du seul serveur actif du système d'événements. Si le serveur est déjà unrefd, alors appeler à nouveau unref n'aura aucun effet. |
8 | server.ref() Contrairement à unref, appeler ref sur un serveur précédemment non refd ne laissera pas le programme se terminer s'il est le seul serveur restant (comportement par défaut). Si le serveur est refd, alors appeler à nouveau la référence n'aura aucun effet. |
9 | server.getConnections(callback) Obtenez de manière asynchrone le nombre de connexions simultanées sur le serveur. Fonctionne lorsque les sockets ont été envoyés aux fourches. Le rappel doit prendre deux arguments err et count. |
Événements
N ° Sr. | Événements et description |
---|---|
1 | listening Émis lorsque le serveur a été lié après avoir appelé server.listen. |
2 | connection Émis lorsqu'une nouvelle connexion est établie. Objet Socket, l'objet de connexion est disponible pour le gestionnaire d'événements. Socket est une instance de net.Socket. |
3 | close Émis lorsque le serveur se ferme. Notez que si des connexions existent, cet événement n'est pas émis tant que toutes les connexions ne sont pas terminées. |
4 | error Émis lorsqu'une erreur se produit. L'événement 'close' sera appelé directement après cet événement. |
Classe - net.Socket
Cet objet est une abstraction d'un TCP ou d'une socket locale. Les instances net.Socket implémentent une interface Stream duplex. Ils peuvent être créés par l'utilisateur et utilisés comme client (avec connect ()) ou ils peuvent être créés par Node et transmis à l'utilisateur via l'événement 'connection' d'un serveur.
Événements
net.Socket est un eventEmitter et il émet les événements suivants.
N ° Sr. | Événements et description |
---|---|
1 | lookup Émis après la résolution du nom d'hôte mais avant la connexion. Non applicable aux sockets UNIX. |
2 | connect Émis lorsqu'une connexion socket est établie avec succès. |
3 | data Émis lorsque les données sont reçues. Les données d'argument seront un tampon ou une chaîne. L'encodage des données est défini par socket.setEncoding (). |
4 | end Émis lorsque l'autre extrémité du socket envoie un paquet FIN. |
5 | timeout Émis si le socket expire en raison de l'inactivité. Ceci est uniquement pour signaler que le socket est inactif. L'utilisateur doit fermer manuellement la connexion. |
6 | drain Émis lorsque le tampon d'écriture devient vide. Peut être utilisé pour limiter les téléchargements. |
sept | error Émis lorsqu'une erreur se produit. L'événement 'close' sera appelé directement après cet événement. |
8 | close Émis une fois que la prise est complètement fermée. L'argument had_error est un booléen qui indique si le socket a été fermé en raison d'une erreur de transmission. |
Propriétés
net.Socket fournit de nombreuses propriétés utiles pour mieux contrôler les interactions des sockets.
N ° Sr. | Propriété et description |
---|---|
1 | socket.bufferSize Cette propriété indique le nombre de caractères actuellement mis en mémoire tampon à écrire. |
2 | socket.remoteAddress Représentation sous forme de chaîne de l'adresse IP distante. Par exemple, «74 .125.127.100» ou «2001: 4860: a005 :: 68». |
3 | socket.remoteFamily Représentation sous forme de chaîne de la famille IP distante. «IPv4» ou «IPv6». |
4 | socket.remotePort La représentation numérique du port distant. Par exemple, 80 ou 21. |
5 | socket.localAddress Représentation sous forme de chaîne de l'adresse IP locale sur laquelle le client distant se connecte. Par exemple, si vous écoutez sur «0.0.0.0» et que le client se connecte sur «192.168.1.1», la valeur serait «192.168.1.1». |
6 | socket.localPort La représentation numérique du port local. Par exemple, 80 ou 21. |
sept | socket.bytesRead La quantité d'octets reçus. |
8 | socket.bytesWritten La quantité d'octets envoyés. |
Méthodes
N ° Sr. | Méthode et description |
---|---|
1 | new net.Socket([options]) Construisez un nouvel objet socket. |
2 | socket.connect(port[, host][, connectListener]) Ouvre la connexion pour un socket donné. Si le port et l'hôte sont donnés, alors le socket sera ouvert en tant que socket TCP, si l'hôte est omis, localhost sera supposé. Si un chemin est donné, le socket sera ouvert en tant que socket Unix vers ce chemin. |
3 | socket.connect(path[, connectListener]) Ouvre la connexion pour un socket donné. Si le port et l'hôte sont donnés, alors le socket sera ouvert en tant que socket TCP, si l'hôte est omis, localhost sera supposé. Si un chemin est donné, le socket sera ouvert en tant que socket Unix vers ce chemin. |
4 | socket.setEncoding([encoding]) Définissez l'encodage du socket en tant que flux lisible. |
5 | socket.write(data[, encoding][, callback]) Envoie des données sur le socket. Le deuxième paramètre spécifie le codage dans le cas d'une chaîne - il est par défaut le codage UTF8. |
6 | socket.end([data][, encoding]) Ferme à moitié le socket, c'est-à-dire qu'il envoie un paquet FIN. Il est possible que le serveur envoie encore des données. |
sept | socket.destroy() Garantit qu'aucune autre activité d'E / S ne se produit sur ce socket. Nécessaire uniquement en cas d'erreur (erreur d'analyse ou autre). |
8 | socket.pause() Met en pause la lecture des données. Autrement dit, les événements de «données» ne seront pas émis. Utile pour ralentir un téléchargement. |
9 | socket.resume() Reprend la lecture après un appel pour mettre en pause (). |
dix | socket.setTimeout(timeout[, callback]) Définit le socket sur le délai d'expiration après le délai d'inactivité en millisecondes sur le socket. Par défaut, net.Socket n'a pas de délai d'expiration. |
11 | socket.setNoDelay([noDelay]) Désactive l'algorithme Nagle. Par défaut, les connexions TCP utilisent l'algorithme Nagle, elles tamponnent les données avant de les envoyer. La valeur true pour noDelay déclenchera immédiatement les données à chaque appel de socket.write (). noDelay est défini par défaut sur true. |
12 | socket.setKeepAlive([enable][, initialDelay]) Activez / désactivez la fonctionnalité keepalive et définissez éventuellement le délai initial avant que la première sonde keepalive ne soit envoyée sur un socket inactif. enable prend la valeur par défaut false. |
13 | socket.address() Renvoie l'adresse liée, le nom de la famille d'adresses et le port du socket comme indiqué par le système d'exploitation. Renvoie un objet avec trois propriétés, par exemple {port: 12346, famille: 'IPv4', adresse: '127.0.0.1'}. |
14 | socket.unref() L'appel de unref sur un socket permettra au programme de se terminer s'il s'agit du seul socket actif dans le système d'événements. Si le socket est déjà unrefd, alors appeler à nouveau unref n'aura aucun effet. |
15 | socket.ref() Contrairement à unref, appeler ref sur une socket précédemment non refd ne laissera pas le programme se terminer si c'est le seul socket restant (comportement par défaut). Si le socket est refd, alors un nouvel appel de ref n'aura aucun effet. |
Exemple
Créez un fichier js nommé server.js avec le code suivant -
Fichier: 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');
});
Maintenant, exécutez le server.js pour voir le résultat -
$ node server.js
Vérifiez la sortie.
server is listening
Créez un fichier js nommé client.js avec le code suivant -
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');
});
Maintenant, exécutez client.js depuis un autre terminal pour voir le résultat -
$ node client.js
Vérifiez la sortie.
connected to server!
Hello World!
disconnected from server
Vérifiez la sortie sur le terminal où server.js s'exécute.
server is listening
client connected
client disconnected