如何从子进程管道分割为4096字节?

时间:2016-02-03 12:09:53

标签: c++ node.js

我使用child_process.spawn从nodejs脚本调用c ++程序。 c ++程序使用std :: cout将数据传递回nodejs脚本。通常,此程序会回送长度超过4096字节的JSON。我的节点脚本(或c ++程序?)会将这个JSON分成多个4096字节的块,以便为单个响应多次调用child.stdout.on(' data')。

有没有办法增加这个块大小或让子进程告诉我预计会有更多数据?

1 个答案:

答案 0 :(得分:1)

解决此类问题的最简单方法是使用某种分隔符。在JSON的情况下,许多人只使用换行符分隔的JSON。因此,在您的C ++程序中的JSON字符串之后附加\n,然后在节点程序中保持缓冲,直到看到\n。在那里拆分,然后开始缓冲下一条消息。