问题描述
假设我用fork创建了一个子进程,例如python脚本。现在,我想向它发送一条消息,让它侦听并响应它。假设每次我向子进程发送“ Hello”时,我都希望它在其粗壮文件中打印“ there”。 我的问题是,必须关闭流到我的子流程才能使我的子流程接收消息,但是随后我无法再次打开它以发送另一条消息。我该如何解决这个问题?
我的代码应如下所示:
javascript:
{fork} = require(child_process);
child = fork('path/to/python.exe',['path/to/program.py']);
child.on('message',(m) => {
console.log(m.toString);
}
child.send("Hello");
setTimeout(()=>{child.send("there!)},1000);
python:
import sys
while True:
print(sys.stdin.readline())
sys.stdout.flush()
此处Javascript应该打印“ Hello”,然后在1秒钟后打印“ there!”。在控制台中,但它什么也不做,因为为了使我的孩子收到消息,我必须先使用child.stdin.end()关闭流。但是后来我无法重新打开它。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)