And if the port is used by other non node processes, listen in child process will success on random port too.
On 2月8日, 下午12时14分, 王 逍 <[email protected]> wrote: > varcluster= require('cluster'); > var http = require('http'); > var net = require('net'); > var util = require('util'); > > if (cluster.isMaster) { > // Fork workers. > for (var i = 0; i < 2; i++) { > cluster.fork(); > } > > cluster.on('death', function(worker) { > console.log('worker ' + worker.pid + ' died'); > });} else { > > server = net.createServer(function(c) { > > }).listen(8080); > server.on('error', function(e) { > console.log("local server connection error: %s", e); > }) > server.on('listening', function() { > console.log("server listened on: " + > util.inspect(this.address())); > }) > > } > > when first executed, outputs: > server listened on: { port: 8080, family: 2, address: '0.0.0.0' } > server listened on: { port: 8080, family: 2, address: '0.0.0.0' } > > but in another terminals(another process, keep the first alive), > second executed, outputs: > > server listened on: { port: 57093, family: 2, address: '0.0.0.0' } > server listened on: { port: 57093, family: 2, address: '0.0.0.0' } > > 57093 is a random port and change when restart process, and it's a > really work server on the port, is it expected? > > I think the second process should get the EADDRINUSE error. > > thanks! > > On 2月7日, 下午10时49分, Shinuza <[email protected]> wrote: > > > > > Not sure if I get this either. > > > But from my understanding: if you run > > theClusterexample<http://nodejs.org/docs/latest/api/cluster.html#cluster>multiple > > times (i.e in two different terminals) the listening port will be > > shared across all of the workers. > > If you have 4 "cpus", using this example, you'd get 8 ( 2 x 4 ) workers and > > 2 masters. 10 processes. If I get it right, all of the workers will listen > > on the same port. > > > If this is the excepted behavior then there is no reason to emit a > > EADDRINUSE. > > > PS: @王 逍 when you said "master" did you mean the github repo? -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
