Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Usage:
- // node client.js <server host> <server port> <size1> <size2> <byte>
- // size1 - size of the first packet to send
- // size2 - size of the second packet to send
- // byte - fill packets with this byte (0x0 - 0xFF), default is random bytes
- const net = require('net');
- const crypto = require('crypto');
- const host = process.argv[2];
- const port = +process.argv[3];
- const size1 = +process.argv[4];
- const size2 = +process.argv[5];
- const byte = +process.argv[6];
- const socket = new net.Socket();
- socket.connect(port, host, () => {
- let received = 0;
- console.log(`connected to ${host}:${port}`);
- const packet1 = isNaN(byte) ? crypto.randomBytes(size1) : Buffer.from(Array(size1).fill(byte));
- const packet2 = isNaN(byte) ? crypto.randomBytes(size2) : Buffer.from(Array(size2).fill(byte));
- socket.write(packet1);
- setTimeout(() => socket.write(packet2), 100);
- const heartbeat = setInterval(() => {
- console.log(`[<] ping`);
- socket.write('ping');
- }, 1000);
- socket.on("data", buffer => {
- const data = buffer.toString();
- console.log(`[>] [${++received}] ${data}`);
- });
- socket.on('error', (error) => {
- console.error(error);
- });
- socket.on('timeout', () => {
- socket.destroy();
- });
- socket.on('close', () => {
- clearInterval(heartbeat);
- console.log(`disconnected`);
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement