How can I check if port is busy in NodeJS?

后端 未结 2 596
我在风中等你
我在风中等你 2021-01-04 06:19

How can I check if port is busy for localhost?

Is there any standard algorithm? I am thinking at making a http request to

2条回答
  •  一向
    一向 (楼主)
    2021-01-04 06:42

    You could attempt to start a server, either TCP or HTTP, it doesn't matter. Then you could try to start listening on a port, and if it fails, check if the error code is EADDRINUSE.

    var net = require('net');
    var server = net.createServer();
    
    server.once('error', function(err) {
      if (err.code === 'EADDRINUSE') {
        // port is currently in use
      }
    });
    
    server.once('listening', function() {
      // close the server if listening doesn't fail
      server.close();
    });
    
    server.listen(/* put the port to check here */);
    

    With the single-use event handlers, you could wrap this into an asynchronous check function.

提交回复
热议问题