TCP 传输 负数出现问题
发布于 4 年前 作者 freezezdj 1244 次浏览

var buf = new Buffer(9); buf.writeInt32LE(9, 0); buf.writeInt8(2, 4); buf.writeInt32LE(-12, 5); client.write(buf, ‘binary’);

然后服务器收到这个数据,取数据-12的时候,不能成功。 如果把-12变成12,服务器收到数据就是对的。 如果不通过TCP传输,直接解析数据,如下,也是对的。 var buffer = require(‘buffer’); var buf = new Buffer(9); buf.writeUInt32LE(9, 0); buf.writeUInt8(2, 4); buf.writeInt32LE(-12, 5); var size = buf.length; console.log(“buffer.size:” + size); var length = buf.readUInt32LE(0); console.log(“buffer.length:” + length); var type = buf.readUInt8(4); console.log(“buffer.type:” + type); var number = buf.readInt32LE(5); console.log(“number:” + number);

是不是传到对端的数据,重组的buffer,没有类型信息,变成了补码,这样该怎么处理??? 求解。。。

回到顶部