Advertisement
Guest User

client.js

a guest
Nov 21st, 2024
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Usage:
  2. // node client.js <server host> <server port> <size1> <size2> <byte>
  3. // size1 - size of the first packet to send
  4. // size2 - size of the second packet to send
  5. // byte - fill packets with this byte (0x0 - 0xFF), default is random bytes
  6.  
  7. const net = require('net');
  8. const crypto = require('crypto');
  9.  
  10. const host = process.argv[2];
  11. const port = +process.argv[3];
  12. const size1 = +process.argv[4];
  13. const size2 = +process.argv[5];
  14. const byte = +process.argv[6];
  15.  
  16. const socket = new net.Socket();
  17. socket.connect(port, host, () => {
  18.   let received = 0;
  19.  
  20.   console.log(`connected to ${host}:${port}`);
  21.  
  22.   const packet1 = isNaN(byte) ? crypto.randomBytes(size1) : Buffer.from(Array(size1).fill(byte));
  23.   const packet2 = isNaN(byte) ? crypto.randomBytes(size2) : Buffer.from(Array(size2).fill(byte));
  24.  
  25.   socket.write(packet1);
  26.   setTimeout(() => socket.write(packet2), 100);
  27.  
  28.   const heartbeat = setInterval(() => {
  29.     console.log(`[<] ping`);
  30.     socket.write('ping');
  31.   }, 1000);
  32.  
  33.   socket.on("data", buffer => {
  34.     const data = buffer.toString();
  35.  
  36.     console.log(`[>] [${++received}] ${data}`);
  37.   });
  38.  
  39.   socket.on('error', (error) => {
  40.     console.error(error);
  41.   });
  42.  
  43.   socket.on('timeout', () => {
  44.     socket.destroy();
  45.   });
  46.  
  47.   socket.on('close', () => {
  48.     clearInterval(heartbeat);
  49.     console.log(`disconnected`);
  50.   });
  51. });
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement