簡體   English   中英

如何處理Node.js緩沖區(長度不確定)

[英]How to handle nodejs buffer (uncertain length)

這是示例數據流(在緩沖區中)。 0x81是每個塊的結尾,需要處理邏輯直到下一個0x81為止。

00:15:04:00:00:30:04:54:52:55:45:05:14:00:00:00:04:4b:30:01:00:64: 81 :00:14: 04:00:00:10:03:42:57:47:03:0c:00:14:00:04:4b:31:01:01:f4: 81 :00:1a:04:00:00: 14:07:44:43:4f:4e:2d:57:32:00:80:00:03:00:04:4b:33:02:07:08:20:08: 81 :00:15: 04:00:00:20:04:49:52:50:43:01:ba:00:00:00:04:4b:34:01:00:64: 81 :00:15:04:00: 00:00:04:42:44:4d:53:07:e4:00:1e:00:04:4b:35:01:03:20: 81

我需要處理完整的流,但不知道如何處理每個塊的不確定長度。

您可以嘗試使用:

var bytes = "00:15:04:00:00:81:00:01:81:51:81".split(":");
var buffer = new Buffer(bytes);

function getNextBlock(buffer, pos) {
    if (pos >= buffer.length)
        return false;

    var block = [];
    while (pos < buffer.length && buffer[pos] != "81")
        block.push(buffer[pos++]);

    return block.length ? block : false;

}

var block;
var pos = 0;
while(block = getNextBlock(buffer, pos)) {
    console.log(block);
    pos += 1 + block.length;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM