19

ポートがビジーかどうかを確認するにはどうすればよいですlocalhostか?

標準アルゴリズムはありますか?そのURLにhttpリクエストをして、レスポンスのステータスコードが404.

4

3 に答える 3

26

TCP または HTTP のいずれかでサーバーを起動しようとすることができますが、それは問題ではありません。次に、ポートでリッスンを開始しようとすることができます。失敗した場合は、エラー コードが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 */);

使い捨てのイベント ハンドラーを使用すると、これを非同期チェック関数にラップできます。

于 2013-10-02T03:40:35.830 に答える