【NodeJS实战】建立TCP客户端发送二进制协议

2021/12/6 22:46:53

本文主要是介绍【NodeJS实战】建立TCP客户端发送二进制协议,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  1. 作为TCP客户端与服务端通信
  2. 通信协议带二进制协议头,二进制头中带命令字与数据长度,协议头之后为实际数据。
var net = require('net');
var client = new net.Socket();
client.setEncoding('utf8');
var serverIp = "127.0.0.1";
var serverPort = 9000;

var data = '<request version="1">\
<name>admin</name>\
<pwd>666666</pwd>\
<User-Agent>Client, Version 20210112</User-Agent>\
</request>'

var dataBuf = Buffer.from(data, 'utf8');  //字符串构建buffer
var dataLen = data.length;
console.log(dataBuf);
var headBuf = Buffer.alloc(32);     // 协议头32字节
headBuf.writeUInt32LE(0x1002, 4);   //协议头命令字
headBuf.writeUInt32LE(dataLen, 28); // 协议头中的数据长度
var sendBuf = Buffer.concat([headBuf, dataBuf]); // 协议头与数据拼接




client.connect(serverPort, serverIp, function(){
    console.log("已连接到服务器");
    client.write(sendBuf);
});


//监听数据
client.on('data', data=>{
    var recvBuf = Buffer.from(data, 'utf8');
    var command = recvBuf.readUInt32LE(4, 4);//命令字
    
    var xml = data.substring(32); 
    console.log('服务器返回的数据:', xml);
  })


这篇关于【NodeJS实战】建立TCP客户端发送二进制协议的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程