亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Node.js檢測端口是否被占用的方法

發布時間:2020-10-18 08:04:09 來源:腳本之家 閱讀:1309 作者:ansenhuang 欄目:web開發

前言

在學習tcp/ip的時候,經常遇到一些關于跟端口有關的東西,在寫網絡上的一些東西,有時用的一些端口被提示:端口已被占用,啊啊啊,挺郁悶的,然后就想著將它搞明白,下面話不多說了,來一起看看詳細的介紹吧。

Nodejs檢測端口是否被占用

開啟本地服務時,有這么一種情況:當前端口已經被另一個項目使用了,導致服務開啟失敗。

那么接下來,我們通過簡簡單單的十行代碼來檢測端口是否已經被占用。

思路

想要知道端口是否被占用,我們可以開啟一個新的服務并監聽該端口,若開啟成功則說明端口未被占用,反之該端口已經被其他程序使用了。

基本思路有了,下面我們開始編寫代碼。

基礎代碼

portIsOccupied.js

var net = require('net')

// 檢測端口是否被占用
function portIsOccupied (port) {
 // 創建服務并監聽該端口
 var server = net.createServer().listen(port)

 server.on('listening', function () { // 執行這塊代碼說明端口未被占用
 server.close() // 關閉服務
 console.log('The port【' + port + '】 is available.') // 控制臺輸出信息
 })

 server.on('error', function (err) {
 if (err.code === 'EADDRINUSE') { // 端口已經被使用
  console.log('The port【' + port + '】 is occupied, please change other port.')
 }
 })
}

// 執行
portIsOccupied(1987)

測試

執行 node portIsOccupied.js,正常情況下會輸出 The port【1987】 is available.

使用ssr將當前目錄設置成靜態服務器,關于ssr的使用可以在這里找到 https://github.com/jaywcjlove/ssr,
ssr默認會開啟 1987 端口。

這時,再次執行 node portIsOccupied.js,輸出 The port【1987】 is occupied, please change other port.

讓程序更加完美

到這里為止,我們已經能夠檢測端口是否被占用。

但是,假如我要檢測另外一個端口,每次都得更改文件的端口號,相當的麻煩。

那么有沒有更加完美的實現方法呢?當然有!

Nodejs中,有這么一個好玩的東西 process.argv,它是一個數組,前兩個值分別是node程序所在位置和當前運行的文件所在位置。

神奇的是,我們運行程序時,所傳的參數可以通過 process.argv 得到。

比如這樣子 node portIsOccupied.js -p 1987,那么會將 -p 和 1987 添加到 process.argv 數組的末尾。

知道了原理,下面我們來編寫更加完美的程序吧。

控制臺給程序傳參

修改 portIsOccupied(1987) 為:

var port = 80 // 默認檢測80端口
if (process.argv[2] === '-p') {
 port = parseInt(process.argv[3])
}
portIsOccupied(port)

執行

其中 [port] 是你想要檢測的端口。

node portIsOccupied.js -p [port]

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新晃| 石河子市| 蕲春县| 札达县| 明水县| 随州市| 雅安市| 日喀则市| 潍坊市| 星子县| 晋州市| 汉源县| 视频| 惠安县| 都安| 屏南县| 勐海县| 基隆市| 寿阳县| 淮北市| 泸州市| 澳门| 西城区| 湖北省| 荥经县| 青铜峡市| 长治市| 北安市| 金山区| 兴和县| 南江县| 赣州市| 吉林省| 林西县| 稻城县| 新绛县| 赫章县| 庆安县| 九龙坡区| 肇东市| 东明县|