Friday, 30 August 2019

Sending image buffer to node.js tcp server

I am trying to send image data from my TCP client to my TCP server both written in node.js

I have already tried doing it this way

client:

function onData(socket, data){
var data = Buffer.from(data).toString();
var arg = data.split(',');
var event = arg[0];
console.log(event);

    if(event == 'screenshot'){
      console.log(hostname)
        console.log('control client uid ' + arg[1] + 'then we screenshot')
        screenshot().then((img) => {
          console.log(img)
            socket.write('screenshotData,' + ','+ hostname +','+ img)
            socket.write('stdout,' + arg[2] +',Screenshot')
          }).catch((err) => {
            console.log(err)
            socket.write('error', err)
          })
    }
})

server

     sock.on('data',function(data){
       //right here i need to parse the first 'EVENT' part of the text so i can get cusotom tcp events and
       var data = Buffer.from(data).toString();
       var arg = data.split(',');
       var event = arg[0];

        if(event == 'screenshotData'){
          agentName = arg[1]
          img = arg[2]
          console.log('agent-name ' + agentName)
          console.log('screnshotdata' + img)

          var dt = dateTime.create();
          var formattedTime = dt.format('Y-m-d-H-M-S')
          var folder = "adminPanel/screenshots/"
          var filename = formattedTime+'-'+agentName +'.png'
          console.log(filename);
          fs.writeFile(folder+filename, img, function (err) {
            console.log(err);
          });

        }

    })

I had to build some rudimentary event system in TCP if you know a better way then let me know but anyways the client takes a screenshot and then it does socket.write('screenshotData', + ',' + hostname + ',' img)

but I think it sends the data in multiple chunks my console is showing random gibberish as a new event many times so I don't even know how I would do this any help would be great



from Sending image buffer to node.js tcp server

No comments:

Post a Comment