Reading a tcp packet on Node js server

Multi tool use
Reading a tcp packet on Node js server
I am trying to read a tcp packet on node js sent from c++ tcp client. Below is the struct sent by tcp client
struct LoginPacket
{
uint16_t packetLength; // value:24
uint8_t cmd; // value: 96
uint8_t version; // value: 1
uint8_t checkSum; // value: 1
uint8_t type1; // value: 1
uint8_t type2; // value: 1
uint8_t random; // value: 8
uint8_t lengthOfText; // value: 7
char *textField; // value: "abcd"
};
Below is my nodejs server application to read this struct.
var tcpSock = require('net');
var server = tcpSock.createServer(function(socket) {
socket.write('Echo serverrn');
socket.pipe(socket);
//var buffer = new Buffer(4096, 'hex');
// listen for incoming data
socket.on("data", function(data){
buf = new Buffer(256);
len = buf.write(data.toString());
var Struct = require('struct').Struct;
function getPacketHeader(buffer){
var packetHeader = new Struct()
.word16Ule('packetLength')
.word8Ube('cmd')
.word8Ube('version')
.word8Ube('checkSum')
.word8Ube('type1')
.word8Ube('type2')
.word8Ube('random')
.word8Ube('lengthOfText')
.charsnt('textField', 4)
packetHeader._setBuff(buffer);
return packetHeader;
};
// pack incoming data into the buffer
var incomingPacket = getPacketHeader(buf);
var packetLength = incomingPacket.get('packetLength');
var command = incomingPacket.get('cmd');
var version = incomingPacket.get('version');
var checkSum = incomingPacket.get('checkSum');
var type1 = incomingPacket.get('type1');
var type2 = incomingPacket.get('type2');
var random = incomingPacket.get('random');
var lengthOfTextField = incomingPacket.get('lengthOfTextField');
var textField = incomingPacket.get('textField');
console.log(packetLength);
console.log(command);
console.log(version);
console.log(checkSum);
console.log(token);
console.log(random);
console.log(magicNumber);
console.log(lengthOfTextField);
console.log(textField);
})
});
server.listen(8000, '127.0.0.1');
When i allocate textField size to 5 bytes and send string "abcd" from client, the server is printing blank for text field.
Output
24
96
1
1
1
1
8
7
Can you please help me in reading string properly ?
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.