Skip to content

Instantly share code, notes, and snippets.

@lionsole
Forked from branneman/client.js
Created June 27, 2018 05:16
Show Gist options
  • Save lionsole/7e7f05b5d892cad93d2aefd0c088f188 to your computer and use it in GitHub Desktop.
Save lionsole/7e7f05b5d892cad93d2aefd0c088f188 to your computer and use it in GitHub Desktop.

Revisions

  1. @branneman branneman created this gist Nov 8, 2014.
    40 changes: 40 additions & 0 deletions client.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,40 @@
    var net = require('net');

    //
    // Client
    //

    function openSocket() {
    var socket = net.connect(3e3);
    socket.setKeepAlive(true);
    socket.on('connect', onConnect.bind({}, socket));
    socket.on('error', onError.bind({}, socket));
    }

    var interval;
    function onConnect(socket) {

    console.log('Socket is open!');

    interval = setInterval(function() {
    var msg = parseInt(+new Date) + '';
    socket.write(msg, function() {
    console.log('Sent:', msg);
    });
    }, 500);
    }

    function onError(socket) {

    console.log('Socket error!');

    // Kill socket
    clearInterval(interval);
    socket.destroy();
    socket.unref();

    // Re-open socket
    setTimeout(openSocket, 1e3);
    }

    openSocket();
    25 changes: 25 additions & 0 deletions server.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    var net = require('net');

    //
    // Server
    //

    var server = new net.Server();

    server.on('connection', function(socket) {

    console.log('Socket is open!');

    socket.setEncoding('utf8');
    socket.on('data', function(data) {
    console.log('Received:', data);
    });

    socket.on('error', function() {
    console.log('Socket error!');
    });
    });

    server.listen(3e3, function() {
    console.log('Server is listening!');
    });