按照《深入浅出Node.js》中进程监听相同端口的实现敲了下代码
//parent.js
var cp = require('child_process');
var child2 = cp.fork('child.js');
var child1 = cp.fork('child.js');
// var child2 = cp.fork('child2.js');
var server = require('net').createServer();
server.on('connection', function (socket) {
socket.end('handled by parent\n');
});
server.listen(1337, function () {
// child1.send('server', server);
child2.send('server', server);
child1.send('server', server);
});
//child.js
process.on('message', function (m, server) {
if (m === 'server') {
server.on('connection', function (socket) {
socket.end('handled by child, pid is ' + process.pid + '\n');
});
}
});
以上代码在运行时,使用curl 127.0.0.1:1337
命令时,mac下主进程和子进程是竞争关系,随机抢占句柄,但是在windows下不管我怎么测试,永远是后定义的子进程抢占到句柄,请问下这是什么问题,windows下使用git bash。