var server = net.createServer(function(c) {
//...
c.on('data', function(data) {
//The data is all data, but what if I need only first N and do not need other data, yet.
c.write(data);
});
//...
};
有没有办法只读取已定义的数据部分?例如:
c.on('data', N, function(data) {
//Read first N bytes
});
其中N是我期望的字节数。所以回调只得到M个字节中的N个。
解决方案是(感谢mscdex):
c.on('readable', function() {
var chunk,
N = 4;
while (null !== (chunk = c.read(N))) {
console.log('got %d bytes of data', chunk.length);
}
});
答案 0 :(得分:3)
节点v0.10 +中的可读流有read()
,允许您请求多个字节。
答案 1 :(得分:0)
您可以创建一个缓冲区,您的数据只会保存缓冲区所持有的数量。
var buf = Buffer(someNum)
以下是详细信息http://nodejs.org/api/buffer.html#buffer_new_buffer_size
的文档