Skip to content

Instantly share code, notes, and snippets.

@pfgray
Created June 19, 2014 00:28
Show Gist options
  • Save pfgray/a6b65f7fa4cb55ca7a8b to your computer and use it in GitHub Desktop.
Save pfgray/a6b65f7fa4cb55ca7a8b to your computer and use it in GitHub Desktop.
NodeDCHelloNodeModules
var dgram = require('dgram');
var client = dgram.createSocket("udp4");
function sendNumber(number){
console.log('sending... ' + number);
var message = new Buffer(number.toString());
client.send(message, 0, message.length, 41234, "192.168.1.243", function(err, bytes) {
sendNumber(number + 1);
});
};
sendNumber(0);
var dgram = require("dgram");
var server = dgram.createSocket("udp4");
var clientMap = [];
server.on("error", function (err) {
console.log("server error:\n" + err.stack);
server.close();
});
server.on("message", function (msg, rinfo) {
console.log("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port);
var clientId = rinfo.address + ":" + rinfo.port;
if(!clientMap[clientId]){
clientMap[clientId] = {
id:clientId,
currentNumber:parseInt(msg)
}
} else {
//verify that the currentNumber is one + the previous number
if(clientMap[clientId].currentNumber > parseInt(msg)){
console.error("client: " + clientId + " missed the number: " + clientMap[clientId].currentNumber + 1);
} else {
clientMap[clientId].currentNumber = parseInt(msg);
}
}
});
server.on("listening", function () {
var address = server.address();
console.log("server listening " + address.address + ":" + address.port);
});
server.bind(41234);
console.log('listening on 41234...');
// server listening 0.0.0.0:41234
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment