add tcpbomb.js

This commit is contained in:
Girish Ramakrishnan 2017-03-30 16:13:11 -07:00
parent ddb0d13b0f
commit f66d5185ad

37
tcpbomb.js Normal file
View File

@ -0,0 +1,37 @@
'use strict';
exports = module.exports = tcpBomb;
var async = require('async'),
net = require('net');
function tcpBomb(ip, port, times, timeout, callback) {
async.times(times, function (n, done) {
var client = new net.Socket();
client.setTimeout(timeout);
client.connect(port, ip, function() {
client.destroy();
done(null, 'Connected');
});
client.on('timeout', function () {
client.destroy();
done(null, 'Timeout');
});
client.on('error', function (error) {
done(null, 'Error: ' + error.message);
});
}, function (error, result) {
var x = result.reduce(function (ac, val) {
if (val === 'Connected') ++ac.connected;
else if (val === 'Timeout') ++ac.timeout;
else ++ac.error;
return ac;
}, { connected: 0, error: 0, timeout: 0 });
return callback(null, x);
});
}