Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Created by alykoshin on 26.09.15.
  3.  */
  4.  
  5. 'use strict';
  6.  
  7. var net = require('net');
  8.  
  9. var sockets = [];
  10.  
  11. var server = net.createServer(function(socket) { // 'connection' listener
  12.   console.log('client connected');
  13.   sockets.push(socket);
  14.  
  15.   for (var i=0; i<sockets.length; i++) {
  16.     sockets[ i ].write('* client from '+socket.remoteAddress+':'+socket.remotePort+' connected\n');
  17.   }
  18.  
  19.   socket.on('end', function() {
  20.     console.log('client disconnected');
  21.     var idx = sockets.indexOf(socket);
  22.     if (idx > -1) {
  23.       sockets.splice(idx, 1);
  24.     }
  25.  
  26.     for (var i=0; i<sockets.length; i++) {
  27.       sockets[ i ].write('* client from '+socket.remoteAddress+':'+socket.remotePort+' disconnected\n');
  28.     }
  29.  
  30.   });
  31.  
  32.   socket.on('error', function(err) {
  33.     console.log('* client.on(\'error\') err:', err);
  34.   });
  35.  
  36.   socket.write('hello from server\r\n');
  37.  
  38.   socket.on('data', function(buffer) {
  39.     console.log('* client.on(\'data\') /data received/:');
  40.     console.log('%s', buffer.toString());
  41.  
  42.     for (var i=0; i<sockets.length; i++) {
  43.       sockets[ i ].write(buffer);
  44.     }
  45.  
  46.     var cmd = buffer.toString().trim();
  47.     if (cmd === '/quit') {
  48.       socket.destroy();
  49.     }
  50.  
  51.   });
  52.  
  53. });
  54.  
  55. server.listen(8124, function() { // 'listening' listener
  56.   console.log('server bound');
  57. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement