2015-03-19 33 views
4

我有一个名为“A”的ELF程序,“A”是一个tcp服务器,我有一个名为“B”的ELF程序,“B”是一个tcp客户端。当“B”开始运行时,如果服务器准备就绪,它将向服务器发送msg信息,无需判断。Node.js使用产生两个子进程,然后两个子进程如何交换?

现在我必须使用Node.js来运行“A”和“B”作为两个子进程,我怎样才能让“A”必须早于“B”运行?

我IMPL这样的:

socket.on('xxx', function() {  
    var A = spawn("A", ...);  
    ...  
    var B = spawn("B", ...);  
    setTimeout(B.sendToA, 500);  
    ... 
}); 

请问有什么好的想法?

谢谢你的帮助!

+1

是否'A'输出的任何数据上的启动? – 2015-03-19 13:13:18

+0

是的,当A开始时,它输出一些信息,然后在readline上阻塞,等待nodejs调用A.stdin.write(“yyy”)。读取“yyy”后,A将启动服务器功能,并输出信息,等待客户端连接。 – zwb 2015-03-19 13:19:47

回答

1

由于您提到服务器输出启动时的一些信息,因此您可以监听此信息,然后在启动客户端时启动它。

喜欢的东西:

socket.on('xxx', function() {  
    var A = spawn("A", ...); 
    A.stdin.write("yyy"); 
    A.stdout.on('data', function(e) { 
     if(e.toString() === "yyy") { 
      var B = spawn("B", ...); 
      B.sendToA(); //I'm guessing this is a pseudo-method? 
     } 
    }); 
}); 
相关问题