Servidor TCP con Javascript
NodeJS
Node.js® es un entorno de ejecución para JavaScript construido con el motor de JavaScript V8 de Chrome. Node.js usa un modelo de operaciones E/S sin bloqueo y orientado a eventos, que lo hace liviano y eficiente https://nodejs.org/es/Protocolo TCP
Transmission Control Protocol (TCP) o Protocolo de Control de Transmisión, es uno de los protocolos fundamentales en Internet.https://es.wikipedia.org
Sockets TCP
Los sockets son una forma de comunicación entre procesos que se encuentran en diferentes máquinas de una red, los sockets proporcionan un punto de comunicación por el cual se puede enviar o recibir información entre procesos.https://es.wikipedia.org
Netcat
Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOSThttps://es.wikipedia.org/wiki/Netcat
Codigo JS
//llamamos al modulo net
var net = require("net");
//array donde almacenamos los socket
var clients = [];
var server = net.createServer((socket) => {
//obtendremos datos del socket instanceado
socket.name = "ip: " + socket.remoteAddress + " puerto: " + socket.remotePort
//añadimos un socket a un array con el metodo push();
clients.push(socket);
//EventEmitter (data) => se activa cuando el socket esta enviando un dato
socket.on("data", function(data){
broadcast(socket.name + "--> " + data, socket);
})
function broadcast(message, sender) {
clients.forEach(function (client) {
if (client === sender){
//si el mensaje es escrito por el mismo no se le envia el mensaje
return
};
//el mensaje se le envia a otro socket registrado previamente en el array cliente;
client.write(message);
});
//envia el mensaje al servidor
process.stdout.write(message)
}
//EventEmitter (end) => detecta el fin de una coneccion con un socket
socket.on("end", function(){
console.log(socket.name + "--> " + "se salio del chat");
});
})
//detectar error
server.on('error', (err) => {
throw err;
});
//puerto por donde va escuchar y atender peticiones
server.listen(8000,() => {
console.log("servidor tcp escuchando en el puerto " + server.address().port);
});
Ejecutarlo
Instalar nodejs luego instalar netcat para windows (en mac ya viene instalado)En el terminal o consola
Servidor.
> node [nombre del archivo]ejm: node serverTcp.js
Cliente.
> nc [ip del servidor] [puerto del servidor]ejm: nc 127.0.0.1 8000

Se hizo esperar, pero ya está publicado el artículo. Espero que haya más.
ResponderEliminarGracias.