有一个应用场景:用C/C++/Java等编译型语言做NodeJS服务器背后高性能计算的组件,那么应该如何实现?
比较好的方法是用Socket通讯,但这就需要双方都要进行套接字编程。
NodeJS倒是好说,但其他语言的套接字编程就不一定简单了。
所以本文中以NodeJS/C++为例,用管道来进行通讯,就像标准输入输出一样简单。
本文仅作演示,默认所有文件都在同一个目录。
高性能运算端
先以一个可以持续 输入/输出 循环的简单C++程序为例,使用阻塞输入可以很好地解决问题。
#include <iostream>
using namespace std;
int main() {
int n;
while(cin >> n) {
cout << n + 1 << endl;
}
return 0;
}
使用 scanf, printf, cin, cout 可以凭自己喜好,经测试都是可以的。
是否使用 endl, flush, \n 都是可以的。
然后编译成 a
(Windows:a.exe
;Unix:a.out
,不用在意这些细节)
NodeJS端
创建一个 i.js
的文件,并写入:
var path = require('path');
var child = require(