Skip to content

Instantly share code, notes, and snippets.

@Befzz
Created December 7, 2015 17:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Befzz/88019748abcef04d3301 to your computer and use it in GitHub Desktop.
Save Befzz/88019748abcef04d3301 to your computer and use it in GitHub Desktop.
/*
Send 1 byte
to IP:[PORT_START - 65535]
over UDP
using <SOCKETS_COUNT> sockets (!!!)
<PORT_STEP> packets each <DELAY> milliseconds
starting from port <PORT_START>
*/
var PORT_STEP = 300;
var PORT_START = 50000;
var DELAY = 100;
var SOCKETS_COUNT = 100;
var L = console.log.bind(console);
var argv = process.argv;
if(argv.length != 3) {
L("USAGE example: node udp_stress.js 11.22.33.44");
process.exit();
}
var IP = argv[2];
var dgram = require("dgram");
var socks = new Array(SOCKETS_COUNT);
//init sockets
for(var i=0;i<SOCKETS_COUNT;i++) {
socks[i] = dgram.createSocket("udp4");
}
var msgbuf_len = 1;
var msgbuf = new Buffer(msgbuf_len);
function udp_send(_port) {
for(var i=0;i<SOCKETS_COUNT;i++) {
socks[i].send(msgbuf,0,msgbuf_len,_port,IP);
}
}
var send_count = 0;
L("IP: ",IP);
L("Perf:",PORT_STEP,"packets each",DELAY,'ms.');
var cur = 0;
function loop_send() {
L("Sending",PORT_STEP,'packets.(', cur+PORT_START,'-',cur+PORT_START+PORT_STEP,')');
for(var i=0;i<PORT_STEP;i++) {
var port = cur+PORT_START+i;
if(port > 65535){
return;
}
udp_send(port);
}
cur += PORT_STEP;
setTimeout(loop_send,DELAY);
}
loop_send();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment