1

我刚刚注意到bufferSizeNodeJs TCP Client 中有一个可以将传入缓冲区限制为 TCP 客户端。

所以我的问题是,如果我将bufferSize客户端设置为 1 个字节并从服务器发送 16 个字节,我应该data在客户端获得 16 个不同的事件吗?

4

1 回答 1

3

bufferSize您指的是可写只读属性:

Object.defineProperty(Socket.prototype, 'bufferSize', {
  get: function() {
    if (this._handle) {
      return this._handle.writeQueueSize + this._writableState.length;
    }
  }
});

(如果您在谈论其他内容,请纠正我)

如果你想控制你的客户端如何接收数据,你应该将你的流设置为非流动模式

readable.on('readable', function() {
  var chunk;
  while (null !== (chunk = readable.read())) {
    console.log('got %d bytes of data', chunk.length);
  }
});

见文档

readable.read(5)如果您只想读取 5 个字节,则可以通过。除非您附加事件,否则默认情况下流将处于非流动模式'data'(因此在您的情况下不要这样做)。

于 2013-10-15T17:11:01.847 回答