0
我正在使用Enfora MT4000設備。當發生某些事件時,設備將數據發送到tcp或udp服務器。數據可以以二進制或ASCII格式發送,但我需要使用二進制。節點tcp socket:從Enfora MT4000讀取二進制數據
Enfora公司設備被配置爲與AT命令是這樣的:
AT$EVENT=14,0,7,1,1
AT$EVENT=14,3,52,14,1578098
當我配置與ASCII的裝置中,所述服務器在該格式接收數據:
r 13 0 0 $GPRMC,211533.00,A,3321.856934,S,07040.240234,W,0.0,0.0,120514,2.3,W,A*2B
但是,當我使用二進制,數據如下所示:
$2K� �Dk����a�H
任何人都知道Node.js如何將二進制da ta從一個插座?我試圖用一個非常簡單的腳本來做到這一點。
// server
require('net').createServer(function (socket) {
console.log("connected");
socket.setEncoding(null);
socket.on('data', function (data) {
console.log(data.toString());
});
})
.listen(3041);
謝謝。
有可能將緩衝區的數據轉換爲javascript的字符串? –
ASCII是UTF-8的一個子集,所以默認的buffer.toString()應該返回正確的結果 – levi
@DaniloAburto目前還不清楚你期待什麼樣的字符串。如果數據是二進制和部分字符串,則可以使用數據。[toString()](http://nodejs.org/docs/latest/api/buffer.html#buffer_buf_tostring_encoding_start_end)同時使用encoding和start和end參數。 – mscdex