fork download
  1. buffer = new Buffer(1024 * 1024);
  2. buffer_size = 0;
  3.  
  4. client = new net.Socket();
  5. client.on('data', function(data){
  6. data.copy(buffer, buffer_size, 0, data.length);
  7. buffer_size += data.length;
  8. while (packet = getPacket()){
  9. //process packet
  10. }
  11. });
  12.  
  13. function getPacket(){
  14. if (buffer_size >= 4 && buffer_size >= buffer.readUint32LE(0)){
  15. const packet_size = buffer.readUint32LE(0);
  16. const packet = new Buffer(packet_size);
  17. buffer.copy(packet, 0, 0, packet_size);
  18. buffer.copy(buffer, 0, packet_size, buffer_size); // cut off a full packet
  19. buffer_size -= packet_size;
  20. return packet;
  21. }
  22. }
Runtime error #stdin #stdout #stderr 0s 17128KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
prog.js:1:0 ReferenceError: Buffer is not defined