处理Node.js套接字数据
我有服务器从客户端接收数据[GPS设备]。 我有一个可读的格式呈现数据(即从客户端获得的结果)的问题。 以下是我尝试过的东西。
这样做:
console.log(data)
我明白了
<Buffer d0 d7 3d 00 c4 56 7e 81>
也试过
console.log(data.toString())
但是我得到不想要的结果:见下面:
A V~
这是我的完整代码:
var net = require('net'); var fs = require('fs'); var server = net.createServer(function (socket) { console.log('Server started: Waiting for client connection ...'); console.log('Client connected:port,address: '+socket.remotePort, socket.remoteAddress); socket.on('data', function (data) { var date = new Date(); var today = date.getDate()+'_'+date.getMonth(); fs.appendFile(today+'_log.txt', data, function (err) { if (err) throw err; console.log(data.toString()) }); }); }); server.listen(my_port, my_ip);
感谢您的input。
根据文档,您必须指定一个编码来获得一个string,而不是一个缓冲区:
Event: 'data'# Buffer object Emitted when data is received. The argument data will be a Buffer or String. Encoding of data is set by socket.setEncoding().
您可以configuration套接字以UTF-8格式获取数据,例如:
socket.setEncoding('utf8');
假设缓冲区中的数据是7位ASCII码,
console.log(data.toString('ascii'))
将解决问题。