最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年12月07日 09:55:24   作者:ansenhuang  
這篇文章主要給大家介紹了關(guān)于利用Node.js檢測端口是否被占用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

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

Nodejs檢測端口是否被占用

開啟本地服務(wù)時,有這么一種情況:當前端口已經(jīng)被另一個項目使用了,導(dǎo)致服務(wù)開啟失敗。

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

思路

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

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

基礎(chǔ)代碼

portIsOccupied.js

var net = require('net')

// 檢測端口是否被占用
function portIsOccupied (port) {
 // 創(chuàng)建服務(wù)并監(jiān)聽該端口
 var server = net.createServer().listen(port)

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

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

// 執(zhí)行
portIsOccupied(1987)

測試

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

使用ssr將當前目錄設(shè)置成靜態(tài)服務(wù)器,關(guān)于ssr的使用可以在這里找到 https://github.com/jaywcjlove/ssr,
ssr默認會開啟 1987 端口。

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

讓程序更加完美

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

但是,假如我要檢測另外一個端口,每次都得更改文件的端口號,相當?shù)穆闊?br />

那么有沒有更加完美的實現(xiàn)方法呢?當然有!

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

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

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

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

控制臺給程序傳參

修改 portIsOccupied(1987) 為:

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

執(zhí)行

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

node portIsOccupied.js -p [port]

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Node.js中module.exports?和exports使用誤區(qū)

    Node.js中module.exports?和exports使用誤區(qū)

    本文主要介紹了Node.js中module.exports?和exports使用誤區(qū),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Node.js中處理錯誤的4種最佳方法分享

    Node.js中處理錯誤的4種最佳方法分享

    錯誤處理并不是編碼工作中最吸引人的部分,但在?Node.js?中構(gòu)建可靠、生產(chǎn)級別的應(yīng)用程序時,它是絕對必要的,下面小編就來為大家介紹一下Node.js中處理錯誤的4種最佳方法吧
    2025-02-02
  • socket.io學(xué)習(xí)教程之基礎(chǔ)介紹(一)

    socket.io學(xué)習(xí)教程之基礎(chǔ)介紹(一)

    socket.io提供了基于事件的實時雙向通訊,所以下面這篇文章主要介紹了關(guān)于socket.io的相關(guān)資料,主要介紹了學(xué)習(xí)socket.io的基礎(chǔ)知識,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • Node.js搭建小程序后臺服務(wù)

    Node.js搭建小程序后臺服務(wù)

    最近在做微信的應(yīng)用號小程序開發(fā),小程序的后臺數(shù)據(jù)接口需要https安全請求,所以需要我的nodejs服務(wù)器能夠提供https的支持,現(xiàn)在就將整個https服務(wù)器的搭建過程說一下
    2018-01-01
  • window10系統(tǒng)下nvm詳細安裝步驟以及使用

    window10系統(tǒng)下nvm詳細安裝步驟以及使用

    nvm可以管理不同版本的node和npm,可以簡單操作node版本的切換、安裝、查看等,下面這篇文章主要給大家介紹了關(guān)于window10系統(tǒng)下nvm詳細安裝步驟以及使用的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 如何使用puppet替換文件中的string

    如何使用puppet替換文件中的string

    今天小編就為大家分享一篇關(guān)于如何使用puppet替換文件中的string,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Node.js與npm版本兼容性問題的原因及解決方案

    Node.js與npm版本兼容性問題的原因及解決方案

    在現(xiàn)代 Web 開發(fā)中,Node.js 和 npm 是不可或缺的工具,然而,隨著 Node.js 和 npm 的快速發(fā)展,版本之間的兼容性問題逐漸成為開發(fā)者面臨的常見挑戰(zhàn),本文將深入探討 Node.js 和 npm 版本兼容性問題,分析其產(chǎn)生的原因,并提供解決方案和最佳實踐,需要的朋友可以參考下
    2025-01-01
  • 淺談Nodejs中的作用域問題

    淺談Nodejs中的作用域問題

    在JS中有全局作用域和函數(shù)作用域,而在Nodejs中也自己的作用域,分為全局作用域(global)和模塊作用域。本文將對Nodejs中的作用域進行介紹,需要的朋友一起來看下吧
    2016-12-12
  • Node.JS枚舉統(tǒng)計當前文件夾和子目錄下所有代碼文件行數(shù)

    Node.JS枚舉統(tǒng)計當前文件夾和子目錄下所有代碼文件行數(shù)

    這篇文章主要介紹了Node.JS枚舉統(tǒng)計當前文件夾和子目錄下所有代碼文件行數(shù),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • koa中間件核心(koa-compose)源碼解讀分析

    koa中間件核心(koa-compose)源碼解讀分析

    這篇文章主要介紹了koa中間件核心(koa-compose)源碼解讀分析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評論

南通市| 宜昌市| 绍兴县| 庄河市| 昭觉县| 徐汇区| 资源县| 石渠县| 达州市| 安远县| 西充县| 九江市| 怀远县| 九江市| 迁西县| 怀仁县| 凤山市| 东莞市| 迁西县| 阿拉善左旗| 博罗县| 额敏县| 昆明市| 锦州市| 青铜峡市| 屯门区| 罗源县| 闵行区| 沈丘县| 绍兴县| 依兰县| 黔西县| 清水县| 八宿县| 汉阴县| 辛集市| 城步| 武邑县| 抚远县| 万年县| 伊宁县|