Skip to content

Instantly share code, notes, and snippets.

@sid24rane
Created July 25, 2016 08:39
Show Gist options
  • Select an option

  • Save sid24rane/6e6698e93360f2694e310dd347a2e2eb to your computer and use it in GitHub Desktop.

Select an option

Save sid24rane/6e6698e93360f2694e310dd347a2e2eb to your computer and use it in GitHub Desktop.

Revisions

  1. sid24rane created this gist Jul 25, 2016.
    87 changes: 87 additions & 0 deletions udp.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,87 @@
    var udp = require('dgram');

    // --------------------creating a udp server --------------------

    // creating a udp server
    var server = udp.createSocket('udp4');

    // emits when any error occurs
    server.on('error',function(error){
    console.log('Error: ' + error);
    server.close();
    });

    // emits on new datagram msg
    server.on('message',function(msg,info){
    console.log('Data received from client : ' + msg.toString());
    console.log('Received %d bytes from %s:%d\n',msg.length, info.address, info.port);

    //sending msg
    server.send(msg,info.port,'localhost',function(error){
    if(error){
    client.close();
    }else{
    console.log('Data sent !!!');
    }

    });

    });

    //emits when socket is ready and listening for datagram msgs
    server.on('listening',function(){
    var address = server.address();
    var port = address.port;
    var family = address.family;
    var ipaddr = address.address;
    console.log('Server is listening at port' + port);
    console.log('Server ip :' + ipaddr);
    console.log('Server is IP4/IP6 : ' + family);
    });

    //emits after the socket is closed using socket.close();
    server.on('close',function(){
    console.log('Socket is closed !');
    });

    server.bind(2222);

    setTimeout(function(){
    server.close();
    },8000);

    // -------------------- udp client ----------------

    var buffer = require('buffer');

    // creating a client socket
    var client = udp.createSocket('udp4');

    //buffer msg
    var data = Buffer.from('siddheshrane');

    client.on('message',function(msg,info){
    console.log('Data received from server : ' + msg.toString());
    console.log('Received %d bytes from %s:%d\n',msg.length, info.address, info.port);
    });

    //sending msg
    client.send(data,2222,'localhost',function(error){
    if(error){
    client.close();
    }else{
    console.log('Data sent !!!');
    }
    });

    var data1 = Buffer.from('hello');
    var data2 = Buffer.from('world');

    //sending multiple msg
    client.send([data1,data2],2222,'localhost',function(error){
    if(error){
    client.close();
    }else{
    console.log('Data sent !!!');
    }
    });